simonihmig / ember-stargate

Modern lightweight portals for Ember
MIT License
68 stars 12 forks source link

Error in Fastboot dev mode / possibility to add details to the 'unregister portal failed' assertion? #413

Open st-h opened 2 years ago

st-h commented 2 years ago

Since upgrading to the latest version I see regular error in fastboot when in dev mode:

There was an error running your app in fastboot. More info about the error: 
 Error: Assertion Failed: Trying to unregister a portal that hasn't been registered before
    at assert (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/@ember/debug/index.js:129:13)
    at PortalService.unregisterPortal (webpack://__ember_auto_import__/./node_modules/ember-stargate/dist/services/-portal.js?:12:2829)
    at PortalTrackerResource.teardown (webpack://__ember_auto_import__/./node_modules/ember-stargate/dist/components/portal.js?:33:1565)
    at /var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/addon-tree-output/ember-resources/-private/resources/lifecycle.js:66:1
    at invokeWithOnError (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:275:24)
    at Queue.flush (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:182:21)
    at DeferredActionQueues.flush (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:341:27)
    at Backburner._end (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:784:38)
    at Backburner.end (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:582:14)
    at Backburner._run (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:827:22)
    at Backburner._join (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:807:25)
    at Backburner.join (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/backburner.js:623:21)
    at join (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/@ember/runloop/index.js:138:22)
    at Class.destroy (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/@ember/-internals/runtime/lib/mixins/container_proxy.js:83:7)
    at Class.superWrapper [as destroy] (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-20979yKPd1HmHuG05/out-797-broccoli_merge_trees/assets/@ember/-internals/utils/index.js:382:20)
    at Result._destroy (myappFolder/myapp/node_modules/fastboot/src/result.js:166:40)
    at EmberApp.visit (myappFolder/myapp/node_modules/fastboot/src/ember-app.js:339:14)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at FastBoot.visit (myappFolder/myapp/node_modules/fastboot/src/index.js:86:18)
    at myappFolder/myapp/node_modules/fastboot-express-middleware/src/index.js:33:20

I have been trying to yarn link this addon, so I could try to improve the logged message, however when doing so I am unable to run my app.

Would it be possible to add the name of the portal to the assertion message, in order to make debugging easier? I would do it myself, but I don't know how to test that in fastboot mode given the issues I am encountering.

This is the error I receive when I add the following entry to package json: "ember-stargate": "git+https://github.com/kaliber5/ember-stargate.git",

There was an error running your app in fastboot. More info about the error: 
 Error: Attempted to resolve `portal`, which was expected to be a component, but nothing was found.
    at resolveComponent (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:207:13)
    at encodeOp (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:2440:16)
    at pushOp (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:2365:5)
    at /var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:1978:5
    at Compilers.compile (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:465:5)
    at compileStatements (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:2369:15)
    at maybeCompile (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:2348:16)
    at CompilableTemplateImpl.compile (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/opcode-compiler.js:2328:12)
    at Object.evaluate (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:3434:27)
    at AppendOpcodes.evaluate (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:1205:17)
    at LowLevelVM.evaluateSyscall (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4882:20)
    at LowLevelVM.evaluateInner (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4838:12)
    at LowLevelVM.evaluateOuter (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4830:12)
    at VM.next (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:5790:22)
    at VM._execute (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:5774:21)
    at VM.execute (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:5743:26)
    at TryOpcode.handleException (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:5011:21)
    at UpdatingVMFrame.handleException (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:5248:29)
    at UpdatingVMImpl.throw (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4949:16)
    at Assert.evaluate (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:2404:7)
    at UpdatingVMImpl._execute (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4932:14)
    at /var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4902:45
    at runInTrackingTransaction (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/validator.js:114:19)
    at UpdatingVMImpl.execute (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4902:9)
    at RenderResultImpl.rerender (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:5276:8)
    at /var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:5802:55
    at RootState.render (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:5769:9)
    at /var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:6116:16
    at inTransaction (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@glimmer/runtime.js:4725:7)
    at Renderer._renderRoots (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:6096:7)
    at Renderer._renderRootsTransaction (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:6148:12)
    at Renderer._revalidate (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:6190:10)
    at invokeWithOnError (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:272:24)
    at Queue.flush (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:182:21)
    at DeferredActionQueues.flush (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:341:27)
    at Backburner._end (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:784:38)
    at Backburner.end (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:582:14)
    at Backburner._run (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:827:22)
    at Backburner._join (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:807:25)
    at Backburner.join (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:623:21)
    at Array.loopEnd (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/@ember/-internals/glimmer/index.js:5913:26)
    at Backburner._trigger (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:891:17)
    at Backburner._end (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:799:26)
    at Backburner._boundAutorunEnd (/var/folders/yt/kw3pd9l52sd9bbpjrlpm47rm0000gn/T/broccoli-21438N1j0uhgdBXak/out-764-broccoli_merge_trees/assets/backburner.js:515:18)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Not sure why I can't use the git reference to add the dependency. I've been doing this with numerous addons, but rarely encountered any issues.

simonihmig commented 2 years ago

420 should add a better message!

Not sure about the actual error, why that happens...

Not sure why I can't use the git reference to add the dependency. I've been doing this with numerous addons, but rarely encountered any issues.

Yeah, with the latest version, this is a native Embroider v2 addon, in a monorepo, which on top requires compilation which usually happens before publishing. So unfortunately a simple git reference won't work here.

I have been trying to yarn link this addon, so I could try to improve the logged message, however when doing so I am unable to run my app.

You could try to use https://github.com/wclr/yalc instead of yarn link, which does a better job at enforcing the right dependency tree, and also supports prepublish compilation, see above...

st-h commented 1 year ago

@simonihmig just got back to this, as I wanted to see if I can find a way to fix the issues related to fastboot and #616, but I unfortunately still am unable to link this addon locally. I also tried yalc, which fixed some things and the app would at least boot up. But at runtime I would see this error:

 Could not find module `ember-resources` imported from `(require)`