# (Solved) DI Error after build on new machine

**URL:** <https://discourse.aurelia.io/t/solved-di-error-after-build-on-new-machine/2343>\
**Category:** Help Requests\
**Created:** [March 6, 2019, 8:48am UTC](https://discourse.aurelia.io/t/solved-di-error-after-build-on-new-machine/2343 "2019-03-06T08:48:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Semtox](https://avatars.discourse-cdn.com/v4/letter/s/a6a055/32.png) [@Semtox](https://discourse.aurelia.io/u/Semtox)\
**Post date:** [March 6, 2019, 8:48am UTC](https://discourse.aurelia.io/t/solved-di-error-after-build-on-new-machine/2343/1 "2019-03-06T08:48:22Z")

</div>

Hello,  
I am pretty new to Aurelia, I started work in small company as a Full Stack Developer. Compay internal web based app is using Aurelia as frontend.  
Building Aurelia app on my PC complete successfully but after opening page in web browser nothing shows. In DevTools Console I see following error:

```auto
Unhandled rejection Error: Error invoking e. Check the inner error for details.
------------------------------------------------
Inner Error:
Message: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
Inner Error Stack:
Error: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
    at R (WEB_APP_URL/aurelia-app/angularIntegration.js:8:161655)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:8:164945)
    at e.pe [as get] (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31833)
    at Object.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:162932)
    at e.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:162126)
    at e.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:165922)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31117)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:8:165239)
    at e.pe [as get] (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31833)
    at t.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:58665)
    at ye (WEB_APP_URL/aurelia-app/angularIntegration.js:1:33126)
    at e.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:35863)
    at t.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:58866)
    at WEB_APP_URL/aurelia-app/angularIntegration.js:1:65001
    at d (WEB_APP_URL/aurelia-app/angularIntegration.js:1:325658)
    at D._settlePromiseFromHandler (WEB_APP_URL/aurelia-app/angularIntegration.js:1:298933)
    at D._settlePromise (WEB_APP_URL/aurelia-app/angularIntegration.js:1:299733)
    at D._settlePromise0 (WEB_APP_URL/aurelia-app/angularIntegration.js:1:300432)
    at D._settlePromises (WEB_APP_URL/aurelia-app/angularIntegration.js:1:301759)
    at WEB_APP_URL/aurelia-app/angularIntegration.js:1:255466
    at MutationObserver.<anonymous> (WEB_APP_URL/aurelia-app/angularIntegration.js:1:315271)
End Inner Error Stack
------------------------------------------------

    at R (WEB_APP_URL/aurelia-app/angularIntegration.js:8:161655)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:8:164945)
    at e.pe [as get] (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31833)
    at Object.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:162932)
    at e.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:162126)
    at e.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:165922)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31117)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:8:165239)
    at e.pe [as get] (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31833)
    at t.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:58665)
    at ye (WEB_APP_URL/aurelia-app/angularIntegration.js:1:33126)
    at e.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:35863)
    at t.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:58866)
    at WEB_APP_URL/aurelia-app/angularIntegration.js:1:65001
    at d (WEB_APP_URL/aurelia-app/angularIntegration.js:1:325658)
    at D._settlePromiseFromHandler (WEB_APP_URL/aurelia-app/angularIntegration.js:1:298933)
    at D._settlePromise (WEB_APP_URL/aurelia-app/angularIntegration.js:1:299733)
    at D._settlePromise0 (WEB_APP_URL/aurelia-app/angularIntegration.js:1:300432)
    at D._settlePromises (WEB_APP_URL/aurelia-app/angularIntegration.js:1:301759)
    at WEB_APP_URL/aurelia-app/angularIntegration.js:1:255466
    at MutationObserver.<anonymous> (WEB_APP_URL/aurelia-app/angularIntegration.js:1:315271)
    at new r (WEB_APP_URL/aurelia-app/angularIntegration.js:1:970)
    at e.invoke (WEB_APP_URL/aurelia-app/angularIntegration.js:8:165952)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31117)
    at e.get (WEB_APP_URL/aurelia-app/angularIntegration.js:8:165239)
    at e.pe [as get] (WEB_APP_URL/aurelia-app/angularIntegration.js:1:31833)
    at t.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:58665)
    at ye (WEB_APP_URL/aurelia-app/angularIntegration.js:1:33126)
    at e.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:35863)
    at t.create (WEB_APP_URL/aurelia-app/angularIntegration.js:1:58866)
    at WEB_APP_URL/aurelia-app/angularIntegration.js:1:65001
From previous event:
    at D.H [as _captureStackTrace] (WEB_APP_URL/aurelia-app/angularIntegration.js:1:268765)
    at D._then (WEB_APP_URL/aurelia-app/angularIntegration.js:1:294390)
    at D.then (WEB_APP_URL/aurelia-app/angularIntegration.js:1:292738)
    at Object.p (WEB_APP_URL/aurelia-app/angularIntegration.js:1:454131)
    at window.startAurelia (WEB_APP_URL/aurelia-app/angularIntegration.js:8:24553)
    at eval (eval at globalEval (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:2:2536), <anonymous>:1:8)
    at eval (<anonymous>)
    at Function.globalEval (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:2:2536)
    at n.fn.init.domManip (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:3:17163)
    at n.fn.init.append (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:3:14846)
    at n.fn.init.<anonymous> (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:3:16206)
    at n.access (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:2:30073)
    at n.fn.init.html (WEB_APP_URL/lib/jquery/jquery-2.1.1.min.js:3:15877)
    at WEB_APP_URL/lib/angular-ui-router/angular-ui-router.min.js:7:15233
    at invokeLinkFn (WEB_APP_URL/lib/angular/angular.js:8746:9)
    at nodeLinkFn (WEB_APP_URL/lib/angular/angular.js:8246:11)
    at compositeLinkFn (WEB_APP_URL/lib/angular/angular.js:7637:13)
    at publicLinkFn (WEB_APP_URL/lib/angular/angular.js:7512:30)
    at j (WEB_APP_URL/lib/angular-ui-router/angular-ui-router.min.js:7:14566)
    at WEB_APP_URL/lib/angular-ui-router/angular-ui-router.min.js:7:14890
    at invokeLinkFn (WEB_APP_URL/lib/angular/angular.js:8746:9)
    at nodeLinkFn (WEB_APP_URL/lib/angular/angular.js:8246:11)
    at compositeLinkFn (WEB_APP_URL/lib/angular/angular.js:7637:13)
    at publicLinkFn (WEB_APP_URL/lib/angular/angular.js:7512:30)
    at WEB_APP_URL/lib/angular-ui-router/angular-ui-router.min.js:7:15468
    at invokeLinkFn (WEB_APP_URL/lib/angular/angular.js:8746:9)
    at nodeLinkFn (WEB_APP_URL/lib/angular/angular.js:8246:11)
    at compositeLinkFn (WEB_APP_URL/lib/angular/angular.js:7637:13)

```

I’ve installed same versions of required packages like previous developer. I tried newest possible versions but result is the same.

After comparing js calls of my build and last production build I think that missing ‘key/value’ on prod is a ‘function Element(){}’.

I have not changed anything in the code, comparing pretty print of both versions seams to prove it:

```auto
--- ai.prod.js 2019-03-06 08:32:38.065520961 +0100
+++ ai.dev.js 2019-03-06 08:27:44.660871083 +0100
@@ -12462,4 +12462 @@
- r.inject = function() {
- return [o.a, a.b.Element, s.a]
- }
- ,
+ r.inject = [o.a, a.b.Element, s.a],
@@ -38634,4 +38631 @@
- i.inject = function() {
- return [y.b.Element]
- }
- ,
+ i.inject = [y.b.Element],
@@ -38678,4 +38672 @@
- s.inject = function() {
- return [y.b.Element, d.a, h.a, v.a.of(b)]
- }
- ,
+ s.inject = [y.b.Element, d.a, h.a, v.a.of(b)],

```

Last two differences are in function called ‘aurelia-i18n/t’

Any tips how to debug it?

---

<div class="post-metadata">

**Author:** ![bigopon](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/bigopon/32/18_2.png) [@bigopon](https://discourse.aurelia.io/u/bigopon)\
**Post date:** [March 6, 2019, 9:47am UTC](https://discourse.aurelia.io/t/solved-di-error-after-build-on-new-machine/2343/2 "2019-03-06T09:47:40Z")

</div>

This error typically is when something like this happens:

```auto
@inject(undefined)

```

Which is a result of platform initialization running _after_ the code that reference its main classes, such as `DOM.Element`. There are few ways to fix this, you could do

```diff
class El {
- inject = [...]
+ static inject() {
+ return [...]
+ }
}

```

Or you could have a separate initialization module:

```auto
// pal-initialization.js
import { initialize } from 'aurelia-pal-browser';
initialize();

// main.js
import './pal-initialization';
import 'other-stuff';

```

The point is to make sure that reference to `DOM.Element` is ready when the code related to it is evaluated.

---

<div class="post-metadata">

**Author:** ![Semtox](https://avatars.discourse-cdn.com/v4/letter/s/a6a055/32.png) [@Semtox](https://discourse.aurelia.io/u/Semtox)\
**Post date:** [March 7, 2019, 1:09pm UTC](https://discourse.aurelia.io/t/solved-di-error-after-build-on-new-machine/2343/3 "2019-03-07T13:09:57Z")

</div>

Thanks for quick response  
As far as I checked (using grep) there are only few inject in this app and all are in `inject()` as a function like You suggest.

I explored a bit more attached diff result and aurelia-i18n plugin. Because it looks like `inject()` as function should be used there. I found out that suggested/used by previous developer version 2.1.2 of aurelia-i18n (and all older too) are mainly using `inject = [....]` notation. Funny thing - his npm claims that he use exactly this version of aurelia-i18n. After upgrading it to something between 2.2.0 and 2.3.2 - it now works again after build on different machines!
