Bug 1887720 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

From Bug 1703589

Report of a blank DevTools UI (see https://youtu.be/4rIWm-I0vb4?si=EJO81f7tggIfyZWP)

Stacktrace from the Browser Toolbox:
```
Tried to send a 'watchTargets' method reply on an already destroyed actor 'watcher' Actor.js:206:21
sendReturn resource://devtools/shared/protocol/Actor.js:206
Failed to create DevTools Frame target for browsingContext 75161927688 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927689 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927715 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927690 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927691 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Error when attaching target: Error: Connection closed, pending request to server0.conn0.windowGlobal75161927698/thread1, type isAttached failed

Request stack:
request@resource://devtools/shared/protocol/Front.js:299:14
generateRequestMethods/</frontProto[name]@resource://devtools/shared/protocol/Front/FrontClassWithSpec.js:47:19
attachThread@resource://devtools/client/fronts/targets/target-mixin.js:447:49
baseFrontClassDestroy resource://devtools/shared/protocol/Front.js:105
destroy resource://devtools/shared/protocol/Front.js:73
destroy resource://devtools/shared/protocol/Pool.js:211
baseFrontClassDestroy resource://devtools/shared/protocol/Front.js:109
_onTargetDestroyed resource://devtools/shared/commands/target/target-command.js:369
_emit resource://devtools/shared/event-emitter.js:242
emit resource://devtools/shared/event-emitter.js:186
emit resource://devtools/shared/event-emitter.js:330
_onTargetDestroyed resource://devtools/client/fronts/watcher.js:74
_emit resource://devtools/shared/event-emitter.js:242
emit resource://devtools/shared/event-emitter.js:186
emit resource://devtools/shared/event-emitter.js:330
onPacket resource://devtools/shared/protocol/Front.js:348
onPacket resource://devtools/client/devtools-client.js:458
send resource://devtools/shared/transport/local-transport.js:67
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
target-command.js:227:15
Exception while opening the toolbox TypeError: URL constructor: is not a valid URL. TypeError: URL constructor: is not a valid URL.
_getDebugTargetData resource://devtools/client/framework/toolbox.js:1364
isDebugTargetFenix resource://devtools/client/framework/toolbox.js:1378
_getPickerAdditionalClassName resource://devtools/client/framework/toolbox.js:2171
_buildPickerButton resource://devtools/client/framework/toolbox.js:2157
_buildButtons resource://devtools/client/framework/toolbox.js:1994
open resource://devtools/client/framework/toolbox.js:1020
toolbox.js:1101:17
Error while calling actor 'target-configuration's method 'updateConfiguration' this._browsingContext is null Actor.js:105:13
TypeError: this._browsingContext is null
_setCacheDisabled resource://devtools/server/actors/target-configuration.js:461
_updateParentProcessConfiguration resource://devtools/server/actors/target-configuration.js:273
updateConfiguration resource://devtools/server/actors/target-configuration.js:217
handler resource://devtools/shared/protocol/Actor.js:198
onPacket resource://devtools/server/devtools-server-connection.js:379
send resource://devtools/shared/transport/local-transport.js:67
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
Actor.js:112:15
Error while calling actor 'target-configuration's method 'updateConfiguration' this._browsingContext is null Actor.js:105:13
TypeError: this._browsingContext is null
_setServiceWorkersTestingEnabled resource://devtools/server/actors/target-configuration.js:329
_updateParentProcessConfiguration resource://devtools/server/actors/target-configuration.js:267
updateConfiguration resource://devtools/server/actors/target-configuration.js:217
handler resource://devtools/shared/protocol/Actor.js:198
onPacket resource://devtools/server/devtools-server-connection.js:379
send resource://devtools/shared/transport/local-transport.js:67
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
Actor.js:112:15
Sync encountered an error - see about:sync-log for the log file. 2 policies.sys.mjs:972:15
Missing resource in locale it: devtools/client/toolbox.ftl
```

The reporter mentioned additional errors related to addons, but I'm not sure they are related:

```
1711145222506 addons.xpi ERROR Failed to install distribution add-on /app/lib/firefox/distribution/extensions/langpack-nb-NO@firefox.mozilla.org.xpi: Error: File /app/lib/firefox/distribution/extensions/langpack-nb-NO@firefox.mozilla.org.xpi does not contain a valid manifest(resource://gre/modules/addons/XPIInstall.sys.mjs:667:11) JS Stack trace: loadManifest@XPIInstall.sys.mjs:667:11
awaitPromise@XPIProvider.sys.mjs:215:15
installDistributionAddons@XPIProvider.sys.mjs:2971:35
checkForChanges@XPIProvider.sys.mjs:3084:22
startup@XPIProvider.sys.mjs:2526:12
callProvider@AddonManager.sys.mjs:227:31
_startProvider@AddonManager.sys.mjs:536:17
startup@AddonManager.sys.mjs:749:14
startup@AddonManager.sys.mjs:3690:26
observe@amManager.sys.mjs:73:29 Log.sys.mjs:722
```

Looking at the shared screencast this seems to happen while opening devtools on a Discord tab. 
I could not reproduce so far, but the following exception at least might be actionable:

> Exception while opening the toolbox TypeError: URL constructor: is not a valid URL. TypeError: URL constructor: is not a valid URL.
> _getDebugTargetData resource://devtools/client/framework/toolbox.js:1364

Not sure how we could get a target `url` which is not a valid URL, but given that the constructor can throw we might want to guard it?
From Bug 1703589

Report of a blank DevTools UI (see https://youtu.be/4rIWm-I0vb4?si=EJO81f7tggIfyZWP)

Stacktrace from the Browser Toolbox:
```
Tried to send a 'watchTargets' method reply on an already destroyed actor 'watcher' Actor.js:206:21
sendReturn resource://devtools/shared/protocol/Actor.js:206
Failed to create DevTools Frame target for browsingContext 75161927688 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927689 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927715 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927690 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Failed to create DevTools Frame target for browsingContext 75161927691 : DOMException: Actor 'DevToolsFrame' destroyed before query 'DevToolsFrameParent:instantiate-already-available' was resolved <empty string> frame-helper.js:141:13
Error when attaching target: Error: Connection closed, pending request to server0.conn0.windowGlobal75161927698/thread1, type isAttached failed

Request stack:
request@resource://devtools/shared/protocol/Front.js:299:14
generateRequestMethods/</frontProto[name]@resource://devtools/shared/protocol/Front/FrontClassWithSpec.js:47:19
attachThread@resource://devtools/client/fronts/targets/target-mixin.js:447:49
baseFrontClassDestroy resource://devtools/shared/protocol/Front.js:105
destroy resource://devtools/shared/protocol/Front.js:73
destroy resource://devtools/shared/protocol/Pool.js:211
baseFrontClassDestroy resource://devtools/shared/protocol/Front.js:109
_onTargetDestroyed resource://devtools/shared/commands/target/target-command.js:369
_emit resource://devtools/shared/event-emitter.js:242
emit resource://devtools/shared/event-emitter.js:186
emit resource://devtools/shared/event-emitter.js:330
_onTargetDestroyed resource://devtools/client/fronts/watcher.js:74
_emit resource://devtools/shared/event-emitter.js:242
emit resource://devtools/shared/event-emitter.js:186
emit resource://devtools/shared/event-emitter.js:330
onPacket resource://devtools/shared/protocol/Front.js:348
onPacket resource://devtools/client/devtools-client.js:458
send resource://devtools/shared/transport/local-transport.js:67
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
target-command.js:227:15
Exception while opening the toolbox TypeError: URL constructor: is not a valid URL. TypeError: URL constructor: is not a valid URL.
_getDebugTargetData resource://devtools/client/framework/toolbox.js:1364
isDebugTargetFenix resource://devtools/client/framework/toolbox.js:1378
_getPickerAdditionalClassName resource://devtools/client/framework/toolbox.js:2171
_buildPickerButton resource://devtools/client/framework/toolbox.js:2157
_buildButtons resource://devtools/client/framework/toolbox.js:1994
open resource://devtools/client/framework/toolbox.js:1020
toolbox.js:1101:17
Error while calling actor 'target-configuration's method 'updateConfiguration' this._browsingContext is null Actor.js:105:13
TypeError: this._browsingContext is null
_setCacheDisabled resource://devtools/server/actors/target-configuration.js:461
_updateParentProcessConfiguration resource://devtools/server/actors/target-configuration.js:273
updateConfiguration resource://devtools/server/actors/target-configuration.js:217
handler resource://devtools/shared/protocol/Actor.js:198
onPacket resource://devtools/server/devtools-server-connection.js:379
send resource://devtools/shared/transport/local-transport.js:67
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
Actor.js:112:15
Error while calling actor 'target-configuration's method 'updateConfiguration' this._browsingContext is null Actor.js:105:13
TypeError: this._browsingContext is null
_setServiceWorkersTestingEnabled resource://devtools/server/actors/target-configuration.js:329
_updateParentProcessConfiguration resource://devtools/server/actors/target-configuration.js:267
updateConfiguration resource://devtools/server/actors/target-configuration.js:217
handler resource://devtools/shared/protocol/Actor.js:198
onPacket resource://devtools/server/devtools-server-connection.js:379
send resource://devtools/shared/transport/local-transport.js:67
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
makeInfallible resource://devtools/shared/ThreadSafeDevToolsUtils.js:103
Actor.js:112:15
Sync encountered an error - see about:sync-log for the log file. 2 policies.sys.mjs:972:15
Missing resource in locale it: devtools/client/toolbox.ftl
```

The reporter mentioned additional errors about addons, but I'm not sure they are related to the issue:

```
1711145222506 addons.xpi ERROR Failed to install distribution add-on /app/lib/firefox/distribution/extensions/langpack-nb-NO@firefox.mozilla.org.xpi: Error: File /app/lib/firefox/distribution/extensions/langpack-nb-NO@firefox.mozilla.org.xpi does not contain a valid manifest(resource://gre/modules/addons/XPIInstall.sys.mjs:667:11) JS Stack trace: loadManifest@XPIInstall.sys.mjs:667:11
awaitPromise@XPIProvider.sys.mjs:215:15
installDistributionAddons@XPIProvider.sys.mjs:2971:35
checkForChanges@XPIProvider.sys.mjs:3084:22
startup@XPIProvider.sys.mjs:2526:12
callProvider@AddonManager.sys.mjs:227:31
_startProvider@AddonManager.sys.mjs:536:17
startup@AddonManager.sys.mjs:749:14
startup@AddonManager.sys.mjs:3690:26
observe@amManager.sys.mjs:73:29 Log.sys.mjs:722
```

Looking at the shared screencast this seems to happen while opening devtools on a Discord tab. 
I could not reproduce so far, but the following exception at least might be actionable:

> Exception while opening the toolbox TypeError: URL constructor: is not a valid URL. TypeError: URL constructor: is not a valid URL.
> _getDebugTargetData resource://devtools/client/framework/toolbox.js:1364

Not sure how we could get a target `url` which is not a valid URL, but given that the constructor can throw we might want to guard it?

Back to Bug 1887720 Comment 0