Hi!
We are having error on angular app page refresh: 
Error is present since ABP version 4.x.x. Now we are at 5.3.2 and the problem still exists.
ERROR  RangeError: Maximum call stack size exceeded at detectChangesInternal (http://localhost:4200/vendor.js:63247:9) at ViewRef$1.detectChanges (http://localhost:4200/vendor.js:73836:9) at SafeSubscriber._next (http://localhost:4200/vendor.js:24701:20) at SafeSubscriber.__tryOrUnsub (http://localhost:4200/vendor.js:13976:16) at SafeSubscriber.next (http://localhost:4200/vendor.js:13915:22) at Subscriber._next (http://localhost:4200/vendor.js:13865:26) at Subscriber.next (http://localhost:4200/vendor.js:13842:18) at DistinctUntilChangedSubscriber._next (http://localhost:4200/vendor.js:15724:30) at DistinctUntilChangedSubscriber.next (http://localhost:4200/vendor.js:13842:18) at MapSubscriber._next (http://localhost:4200/vendor.js:15951:26) {stack: "RangeError: Maximum call stack size exceeded\n a…._next (http://localhost:4200/vendor.js:15951:26)", message: "Maximum call stack size exceeded"} stack = "RangeError: Maximum call stack size exceeded\n at detectChangesInternal (http://localhost:4200/vendor.js:63247:9)\n at ViewRef$1.detectChanges (http://localhost:4200/vendor.js:73836:9)\n at SafeSubscriber._next (http://localhost:4200/vendor.js:24701:20)\n at SafeSubscriber.__tryOrUnsub (http://localhost:4200/vendor.js:13976:16)\n at SafeSubscriber.next (http://localhost:4200/vendor.js:13915:22)\n at Subscriber._next (http://localhost:4200/vendor.js:13865:26)\n at Subscriber.next (http://localhost:4200/vendor.js:13842:18)\n at DistinctUntilChangedSubscriber._next (http://localhost:4200/vendor.js:15724:30)\n at DistinctUntilChangedSubscriber.next (http://localhost:4200/vendor.js:13842:18)\n at MapSubscriber._next (http://localhost:4200/vendor.js:15951:26)" message = "Maximum call stack size exceeded" [[Prototype]] = Error defaultErrorLogger                         	core.mjs:6494 handleError                                	core.mjs:6541 next                                       	core.mjs:26174 __tryOrUnsub                               	Subscriber.js:183 next                                       	Subscriber.js:122 _next                                      	Subscriber.js:72 next                                       	Subscriber.js:49 next                                       	Subject.js:39 emit                                       	core.mjs:22483 (anonymous function)                       	core.mjs:25634 invoke                                     	zone.js:372 run                                        	zone.js:134 runOutsideAngular                          	core.mjs:25507 onHandleError                              	core.mjs:25634 handleError                                	zone.js:376 runTask                                    	zone.js:181 invokeTask                                 	zone.js:487 ZoneTask.invoke                            	zone.js:476 data.args.<computed>                       	zone.js:2385 Async call from setTimeout scheduleTask                               	zone.js:2387 scheduleTask                               	zone.js:393 onScheduleTask                             	zone.js:283 scheduleTask                               	zone.js:386 scheduleTask                               	zone.js:221 scheduleMacroTask                          	zone.js:244 scheduleMacroTaskWithCurrentZone           	zone.js:683 (anonymous function)                       	zone.js:2429 proto.<computed>                           	zone.js:973 hostReportError                            	hostReportError.js:2 __tryOrUnsub                               	Subscriber.js:191 next                                       	Subscriber.js:122 _next                                      	Subscriber.js:72 next                                       	Subscriber.js:49 _next                                      	distinctUntilChanged.js:50 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _next                                      	distinctUntilChanged.js:50 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _subscribe                                 	BehaviorSubject.js:14 _trySubscribe                              	Observable.js:42 _trySubscribe                              	Subject.js:81 subscribe                                  	Observable.js:28 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	distinctUntilChanged.js:11 subscribe                                  	Observable.js:23 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	distinctUntilChanged.js:11 subscribe                                  	Observable.js:23 check                                      	abp-ng.core.mjs:1930 ngOnChanges                                	abp-ng.core.mjs:1947 rememberChangeHistoryAndInvokeOnChangesHook	core.mjs:1508 callHook                                   	core.mjs:2561 callHooks                                  	core.mjs:2520 executeInitAndCheckHooks                   	core.mjs:2471 refreshView                                	core.mjs:9510 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 detectChangesInternal                      	core.mjs:10874 detectChanges                              	core.mjs:21466 (anonymous function)                       	abp-ng.core.mjs:1935 __tryOrUnsub                               	Subscriber.js:183 next                                       	Subscriber.js:122 _next                                      	Subscriber.js:72 next                                       	Subscriber.js:49 _next                                      	distinctUntilChanged.js:50 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _next                                      	distinctUntilChanged.js:50 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _subscribe                                 	BehaviorSubject.js:14 _trySubscribe                              	Observable.js:42 _trySubscribe                              	Subject.js:81 subscribe                                  	Observable.js:28 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	distinctUntilChanged.js:11 subscribe                                  	Observable.js:23 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	distinctUntilChanged.js:11 subscribe                                  	Observable.js:23 check                                      	abp-ng.core.mjs:1930 ngOnChanges                                	abp-ng.core.mjs:1947 rememberChangeHistoryAndInvokeOnChangesHook	core.mjs:1508 callHook                                   	core.mjs:2561 callHooks                                  	core.mjs:2520 executeInitAndCheckHooks                   	core.mjs:2471 refreshView                                	core.mjs:9510 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 detectChangesInternal                      	core.mjs:10874 detectChanges                              	core.mjs:21466 (anonymous function)                       	abp-ng.core.mjs:1935 __tryOrUnsub                               	Subscriber.js:183 next                                       	Subscriber.js:122 _next                                      	Subscriber.js:72 next                                       	Subscriber.js:49 _next                                      	distinctUntilChanged.js:50 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _next                                      	distinctUntilChanged.js:50 next                                       	Subscriber.js:49 _next                                      	map.js:35 next                                       	Subscriber.js:49 _subscribe                                 	BehaviorSubject.js:14 _trySubscribe                              	Observable.js:42 _trySubscribe                              	Subject.js:81 subscribe                                  	Observable.js:28 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	distinctUntilChanged.js:11 subscribe                                  	Observable.js:23 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	map.js:16 subscribe                                  	Observable.js:23 call                                       	distinctUntilChanged.js:11 subscribe                                  	Observable.js:23 check                                      	abp-ng.core.mjs:1930 ngOnChanges                                	abp-ng.core.mjs:1947 rememberChangeHistoryAndInvokeOnChangesHook	core.mjs:1508 callHook                                   	core.mjs:2561 callHooks                                  	core.mjs:2520 executeInitAndCheckHooks                   	core.mjs:2471 refreshView                                	core.mjs:9510 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 refreshView                                	core.mjs:9519 refreshEmbeddedViews                       	core.mjs:10646 Async call from Promise.then nativeScheduleMicroTask                    	zone.js:561 scheduleMicroTask                          	zone.js:572 scheduleTask                               	zone.js:396 onScheduleTask                             	zone.js:283 scheduleTask                               	zone.js:386 scheduleTask                               	zone.js:221 scheduleMicroTask                          	zone.js:241 scheduleResolveOrReject                    	zone.js:1265 resolvePromise                             	zone.js:1202 (anonymous function)                       	zone.js:1118 (anonymous function)                       	zone.js:1134 webpackJsonpCallback                       	jsonp chunk loading:77 (anonymous function)                       	default…ared_module_ts.js:1
Issue seems to be related to route.provider.ts. We have more than 140 routes defined there. Not sure if there is a problem with routes amount or it's nesting level, but if I comment out few of them error disappears.
Thanks.
- ABP Framework version: v5.3.2
 - UI type: Angular
 
3 Answer(s)
- 
    0
Hello,
The fix will available in the next version of 5.3. There is a workaround for this bug below:
import { PermissionDirective } from '@abp/ng.core'; import { Component } from '@angular/core'; import { distinctUntilChanged, take } from 'rxjs/operators'; import { ReplaySubject } from 'rxjs'; @Component({ selector: 'app-root', template: ` <abp-loader-bar></abp-loader-bar> <abp-dynamic-layout></abp-dynamic-layout> `, }) export class AppComponent {} function checkCustom() { if (this.subscription) { this.subscription.unsubscribe(); } this.subscription = this.permissionService .getGrantedPolicy$(this.condition || '') .pipe(distinctUntilChanged()) .subscribe(isGranted => { this.vcRef.clear(); if (isGranted) this.vcRef.createEmbeddedView(this.templateRef); if (this.runChangeDetection) { if (!this.rendered) { this.cdrSubject.next(); } else { this.cdRef.detectChanges(); } } else { this.cdRef.markForCheck(); } }); } function after() { this.cdrSubject.pipe(take(1)).subscribe(() => this.cdRef.detectChanges()); this.rendered = true; } PermissionDirective.prototype['check'] = checkCustom; PermissionDirective.prototype['ngAfterViewInit'] = after; PermissionDirective.prototype['cdrSubject'] = new ReplaySubject(); PermissionDirective.prototype['rendered'] = false; - 
    0
Hi.
Thanks for help. Workaround fixed the issue. Any estimates regarding ABP update with fix?
 - 
    0
Hello,
The release date of the next version of 5.3 is not certain. I will notify you when the version is released.