Skip to content

ERR_INVALID_URL thrown during prerendering ngSrc with priority attribute #56207

@MintMissy

Description

@MintMissy

Which @angular/* package(s) are the source of the bug?

common, platform-server

Is this a regression?

No

Description

When using Angular to prerender images with the ngSrc directive and the priority attribute set, an ERR_INVALID_URL error is thrown. Additionally, when this error occurs, the preload tag is not rendered inside the section of the prerendered document.

This issue is specific to the non-optimized build configuration - if I set optimization to true in development configuration (angular.json) the error is no longer being thrown.

You can reproduce it by using the following command in my repro issue: npm run watch

Please provide a link to a minimal reproduction of the bug

https://github.com/MintMissy/err-invalid-url-repro

Please provide the exception or error you saw

ERROR TypeError [ERR_INVALID_URL]: Invalid URL
    at __node_internal_captureLargerStackTrace (node:internal/errors:496:5)
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:676:13)
    at getUrl (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\common\fesm2022\common.mjs:6043:46)
    at _PreconnectLinkChecker.assertPreconnect (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\common\fesm2022\common.mjs:6567:20)
    at _NgOptimizedImage.ngOnInit (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\common\fesm2022\common.mjs:6964:17)
    at callHookInternal (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:5150:14)
    at callHook (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:5177:13)
    at callHooks (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:5131:17)
    at executeInitAndCheckHooks (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:5081:9)
    at refreshView (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13015:21)
    at detectChangesInView (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13231:9)
    at detectChangesInViewIfAttached (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13191:5)
    at detectChangesInComponent (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13180:5)
    at detectChangesInChildComponents (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13244:9)
    at refreshView (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13054:13)
    at detectChangesInView (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:13231:9)
    at detectChangesInViewWhileDirty (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:12929:9)
    at detectChangesInternal (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:12908:9)
    at detectChangesInViewIfRequired (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:32665:5)
    at _ApplicationRef.detectChangesInAttachedViews (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:32500:21)
    at _ApplicationRef._tick (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:32469:18)
    at _ApplicationRef.tick (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:32458:14)
    at _ApplicationRef._loadComponent (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:32552:14)
    at _ApplicationRef.bootstrap (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:32440:14)
    at <anonymous> (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:36496:32)
    at _ZoneDelegate.invoke (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:365:28)
    at Object.onInvoke (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:15743:33)
    at _ZoneDelegate.invoke (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:364:34)
    at _ZoneImpl.run (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:111:43)
    at <anonymous> (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:1192:40)
    at _ZoneDelegate.invokeTask (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:398:33)
    at AsyncStackTaggingZoneSpec.onInvokeTask (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:15431:28)
    at _ZoneDelegate.invokeTask (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:397:38)
    at Object.onInvokeTask (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\@angular\core\fesm2022\core.mjs:15730:33)
    at _ZoneDelegate.invokeTask (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:397:38)
    at _ZoneImpl.runTask (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:158:47)
    at drainMicroTaskQueue (P:\Xgrow\err-invalid-url-repro\.angular\prerender-root\7732fdf6-f774-4706-b0ac-59d4ca20857d\node_modules\zone.js\fesm2015\zone-node.js:577:35) {
  input: '/public/angular_logo.png',
  code: 'ERR_INVALID_URL'

Please provide the environment you discovered this bug in (run ng version)

Angular CLI: 18.0.2
Node: 18.19.1
Package Manager: npm 10.2.4
OS: win32 x64

Angular: 18.0.1
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1800.2
@angular-devkit/build-angular   18.0.2
@angular-devkit/core            18.0.2
@angular-devkit/schematics      18.0.2
@angular/cli                    18.0.2
@angular/ssr                    18.0.2
@schematics/angular             18.0.2
rxjs                            7.8.1
typescript                      5.4.5
zone.js                         0.14.6

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions