<p dir="auto"><strong>I'm submitting a ...</strong>  (check one with "x")</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[x] bug report =&gt; search github for a similar issue or PR before submitting"><pre class="notranslate"><code class="notranslate">[x] bug report =&gt; search github for a similar issue or PR before submitting
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong><br>
After upgrading to 2.4.8, route resolution is starting at the same time as APP_INITIALIZER. I understand that bootstrap should not be completed before the route resolution, but shouldn't the APP_INITIALIZER finish first before starting the route resolution? Our application depends on APP_INITIALIZER provider to load settings first. These settings are used in the the route resolves. After 2.4.8, this is broken.</p>
<p dir="auto"><strong>Expected behavior</strong><br>
APP_INITIALIZER Promise should be resolved before starting the route resolutions.</p>
<p dir="auto"><strong>Minimal reproduction of the problem with instructions</strong><br>
export const ConfigServiceProvider: FactoryProvider = {<br>
provide: APP_INITIALIZER,<br>
useFactory: (config: ConfigService) =&gt; () =&gt; config.load(),<br>
deps: [ConfigService],<br>
multi: true<br>
}</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Injectable/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Injectable">@Injectable</a>()<br>
export class ConfigService {<br>
public load(): Promise {<br>
return new Promise((resolve: (value?: any | PromiseLike) =&gt; void, reject) =&gt; {<br>
this.http.get("public/appsettings.json").map(res =&gt; res.json())<br>
.subscribe(data =&gt; {<br>
//populate configuration class that stores language url.<br>
resolve(true);<br>
});<br>
}<br>
}<br>
}</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Injectable/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Injectable">@Injectable</a>()<br>
export class LanguageServiceResolve implements Resolve&lt;{ [key: string]: string }&gt; {<br>
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise&lt;{ [key: string]: string }&gt; | { [key: string]: string } {<br>
return this.http.get("(url set above)").toPromise().then((x: { [key: string]: string }) =&gt; {<br>
//etc...<br>
}<br>
//breaks above because url has not been set yet.<br>
}<br>
}</p>
<p dir="auto"><strong>What is the motivation / use case for changing the behavior?</strong><br>
Be able to load app settings that can be used in route resolution.</p>
<p dir="auto"><strong>Please tell us about your environment:</strong><br>
Webpack</p>
<ul dir="auto">
<li><strong>Angular version:</strong> 2.4.8</li>
</ul>

<ul dir="auto">
<li>
<p dir="auto"><strong>Browser:</strong> [all ]</p>
</li>
<li>
<p dir="auto"><strong>Language:</strong> [TypeScript 2.0.10|  ES5]</p>
</li>
<li>
<p dir="auto"><strong>Node (for AoT issues):</strong> <code class="notranslate">node --version</code> =</p>
</li>
</ul>
<p dir="auto"><strong>I'm submitting a ...</strong>  (check one with "x")</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[x ] bug report 
[ ] feature request
[ ] support request"><pre class="notranslate"><code class="notranslate">[x ] bug report 
[ ] feature request
[ ] support request
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong></p>

<p dir="auto">After update angular my application shows the loader and that's it, nothing happens.<br>
On version 2.4.7 the site works just fine.<br>
I have no errors on console. I have no clue what's causing this issue except the version change<br>
<strong>Expected behavior</strong></p>

<p dir="auto">The site should work just like it 2.4.7</p>
<p dir="auto"><strong>Minimal reproduction of the problem with instructions</strong></p>

<p dir="auto"><strong>What is the motivation / use case for changing the behavior?</strong></p>

<p dir="auto">Updating angular from 2.4.7 to 2.4.8</p>
<p dir="auto"><strong>Please tell us about your environment:</strong></p>

<p dir="auto">Windows 10,<br>
Webstorm 2016.3.3</p>
<ul dir="auto">
<li><strong>Angular version:</strong> 2.0.8</li>
</ul>

<ul dir="auto">
<li><strong>Browser:</strong> [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]</li>
</ul>

<p dir="auto">Chrome 56.0.2924.87 (Only one that was tested)</p>
<ul dir="auto">
<li><strong>Language:</strong> [all | TypeScript X.X | ES6/7 | ES5]<br>
TypeScript 2.1.6</li>
</ul>