Activities of "ArneV"

Thanks maliming for pointing me back in the right direction.

I am currently continuing to debug my migrated project.

We have a landing page where we select a tenant, and then we redirect to the localhost:44385/Account/Login page.

Even though there is a "selectedTenant" query parameter, the tenant is not selected.

https://localhost:44385/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3DPartnerPortal_App%26state%3DTEhmVEhYSG9sWjItV3VrRGd4b0M5dHRwOHBTdGYwRlFvWXZPRlJtNnNPZFFC%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%253A4200%26scope%3Doffline_access%2520openid%2520profile%2520email%2520phone%2520PartnerPortal%26code_challenge%3D41hJzeacuRZcj0DOHNxFG_HW4pzZqQbpTfXL4ntrq3k%26code_challenge_method%3DS256%26nonce%3DTEhmVEhYSG9sWjItV3VrRGd4b0M5dHRwOHBTdGYwRlFvWXZPRlJtNnNPZFFC%26culture%3Den%26ui-culture%3Den%26selectedTenantId%3D7a50f0a8-38e8-0807-55b4-3a040dbaffd1

I have followed the commercial openiddict step by step migration guide (moving from IdentityServer to OpenIddict), as well as the angular part (which was just adding a trailing slash and an additional scope in the environment.ts file if I'm not mistaken). I did use the 8.2.2 versions of the packages.

I now receive this error in the browser after logging in.

error:invalid_scope
error_description:The specified 'scope' is invalid.
error_uri:https://documentation.openiddict.com/errors/ID2052

HttpApi.Host logs:


[15:41:20 INF] The request URI matched a server endpoint: Authorization.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by Volo.Abp.Account.Web.Pages.Account.OpenIddictImpersonateInferEndpointType.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractAuthorizationRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetOrPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractAuthorizationRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]].
[15:41:20 INF] The authorization request was successfully extracted: {
  "response_type": "code",
  "client_id": "PartnerPortal_App",
  "state": "fn5JeHpuN1Q4c2tLVWt2Yn51UnZTcGRvZEJzZWJCekpVZkI1Z0E1dE5XYUlW",
  "redirect_uri": "http://localhost:4200",
  "scope": "offline_access openid profile role email phone PartnerPortal",
  "code_challenge": "CfsYjxje98KAV6DELm4BsKByagBqTSzjrJnIpXAEBJQ",
  "code_challenge_method": "S256",
  "nonce": "fn5JeHpuN1Q4c2tLVWt2Yn51UnZTcGRvZEJzZWJCekpVZkI1Z0E1dE5XYUlW",
  "culture": "en",
  "ui-culture": "en",
  "selectedTenantId": "7a50f0a8-38e8-0807-55b4-3a040dbaffd1"
}.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ExtractAuthorizationRequest.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateRequestParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateRequestUriParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateClientIdParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateRedirectUriParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateResponseTypeParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateResponseModeParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateScopeParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateNonceParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidatePromptParameter.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateProofKeyForCodeExchangeParameters.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateIdentityToken.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateAuthentication.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateResponseType.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateClientRedirectUri.
[15:41:20 INF] The authentication request was rejected because invalid scopes were specified: ["role"].
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateScopes.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateAuthorizationRequestContext was marked as rejected by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateScopes.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateAuthorizationRequest.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.OpenIddictServerHandlers+Authentication+ValidateAuthorizationRequest.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+AttachRedirectUri.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+InferResponseMode.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+AttachResponseState.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Authentication+AttachIssuer.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]].
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]].
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+Authentication+ProcessFormPostResponse.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+Authentication+ProcessQueryResponse.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+Authentication+ProcessFragmentResponse.
[15:41:20 DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessStatusCodePagesErrorResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyAuthorizationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]].
[15:41:20 INF] The response was successfully returned as a plain-text document: {
  "error": "invalid_scope",
  "error_description": "The specified 'scope' is invalid.",
  "error_uri": "https://documentation.openiddict.com/errors/ID2052"
}.

environment ts file:

 oAuthConfig: {
    issuer: 'https://localhost:44385/',
    redirectUri: baseUrl,
    clientId: 'PartnerPortal_App',
    responseType: 'code',
    scope: 'offline_access openid profile role email phone PartnerPortal',
    requireHttps: true
  },
  • ABP Framework version: v8.2.2
  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
  • Exception message and full stack trace:
Invoking IdentityServer endpoint: IdentityServer4.Endpoints.AuthorizeEndpoint for /connect/authorize
[09:35:56 DBG] Start authorize request
[09:35:56 DBG] No user present in authorize request
[09:35:56 DBG] Start authorize request protocol validation
[09:35:56 ERR] Unknown client or not enabled: PartnerPortal_App
{"ClientId": null, "ClientName": null, "RedirectUri": null, "AllowedRedirectUris": null, "SubjectId": "anonymous", "ResponseType": null, "ResponseMode": null, "GrantType": null, "RequestedScopes": "", "State": null, "UiLocales": null, "Nonce": null, "AuthenticationContextReferenceClasses": null, "DisplayMode": null, "PromptMode": "", "MaxAge": null, "LoginHint": null, "SessionId": null, "Raw": {"response_type": "code", "client_id": "PartnerPortal_App", "state": "dS5jYy0xNGZBenBVNk9RZkZaLURqa35ubVkzMXVlSVdlX2FnSXRJdXFoNWlh", "redirect_uri": "http://localhost:4200", "scope": "offline_access openid profile role email phone PartnerPortal", "code_challenge": "9UgsS7QtePtvo10d2NkPR2yEsuJLVMdMfYrFmj5JvV8", "code_challenge_method": "S256", "nonce": "dS5jYy0xNGZBenBVNk9RZkZaLURqa35ubVkzMXVlSVdlX2FnSXRJdXFoNWlh", "culture": "en", "ui-culture": "en", "selectedTenantId": "7a50f0a8-38e8-0807-55b4-3a040dbaffd1"}, "$type": "AuthorizeRequestValidationLog"}
[09:35:56 ERR] Request validation failed
[09:35:56 INF] {"ClientId": null, "ClientName": null, "RedirectUri": null, "AllowedRedirectUris": null, "SubjectId": "anonymous", "ResponseType": null, "ResponseMode": null, "GrantType": null, "RequestedScopes": "", "State": null, "UiLocales": null, "Nonce": null, "AuthenticationContextReferenceClasses": null, "DisplayMode": null, "PromptMode": "", "MaxAge": null, "LoginHint": null, "SessionId": null, "Raw": {"response_type": "code", "client_id": "PartnerPortal_App", "state": "dS5jYy0xNGZBenBVNk9RZkZaLURqa35ubVkzMXVlSVdlX2FnSXRJdXFoNWlh", "redirect_uri": "http://localhost:4200", "scope": "offline_access openid profile role email phone PartnerPortal", "code_challenge": "9UgsS7QtePtvo10d2NkPR2yEsuJLVMdMfYrFmj5JvV8", "code_challenge_method": "S256", "nonce": "dS5jYy0xNGZBenBVNk9RZkZaLURqa35ubVkzMXVlSVdlX2FnSXRJdXFoNWlh", "culture": "en", "ui-culture": "en", "selectedTenantId": "7a50f0a8-38e8-0807-55b4-3a040dbaffd1"}, "$type": "AuthorizeRequestValidationLog"}
[09:35:56 INF] {"ClientId": "PartnerPortal_App", "ClientName": null, "RedirectUri": null, "Endpoint": "Authorize", "SubjectId": null, "Scopes": "", "GrantType": null, "Error": "unauthorized_client", "ErrorDescription": "Unknown client or client not enabled", "Category": "Token", "Name": "Token Issued Failure", "EventType": "Failure", "Id": 2001, "Message": null, "ActivityId": "0HN6IVL4KETP2:00000001", "TimeStamp": "2024-09-12T07:35:56.0000000Z", "ProcessId": 13528, "LocalIpAddress": "::1:44385", "RemoteIpAddress": "::1", "$type": "TokenIssuedFailureEvent"}
[09:35:56 INF] The response could not be cached for this request.
[09:35:56 INF] Request finished HTTP/2 GET https://localhost:44385/connect/authorize?response_type=code&client_id=PartnerPortal_App&state=dS5jYy0xNGZBenBVNk9RZkZaLURqa35ubVkzMXVlSVdlX2FnSXRJdXFoNWlh&redirect_uri=http%3A%2F%2Flocalhost%3A4200&scope=offline_access%20openid%20profile%20role%20email%20phone%20PartnerPortal&code_challenge=9UgsS7QtePtvo10d2NkPR2yEsuJLVMdMfYrFmj5JvV8&code_challenge_method=S256&nonce=dS5jYy0xNGZBenBVNk9RZkZaLURqa35ubVkzMXVlSVdlX2FnSXRJdXFoNWlh&culture=en&ui-culture=en&selectedTenantId=7a50f0a8-38e8-0807-55b4-3a040dbaffd1 - 302 0 null 168.9828ms
[09:35:56 INF] Request starting HTTP/2 GET https://localhost:44385/Account/Error?errorId=CfDJ8IfPL4gEj_lBlyYCXb43SqCQlGHbLin3iWrDERZZZMPJXGXDBNB-bwtAJHEUnE242e8WY60fcVCIASDxpBEYeN0k13jJ1H9mNSImPVBZPxGi7pxqhtvS3hp8vg7b4gaNmgpnFDaHA1ooJcMlLiGutarupbmMy109a971491ckIYvI5X9rVQoizC3tdkyK133SyrHal7oPArA8y-dwRcUEinnzXAtK_C0_nxjb2c5qRprPOIsm_JDk8v-Asl9_5KT_CTyQ4Y54LqtBE_m6gFkd-z2rjqg6L9As9rfnk-i9y9vNnRDNXwn9eHonuzxcsGxjIbLad4kczs1k1fjqjQbHZ_Fb1OW8f3jCnu-hDw4wsH4oJpVGXP2Er0ULCyUq1PXcA - null null
[09:35:56 INF] No cached response available for this request.
[09:35:56 INF] Executing endpoint 'Volo.Abp.Account.Web.Areas.Account.Controllers.ErrorController.Index (Volo.Abp.Account.Pro.Public.Web.IdentityServer)'
[09:35:56 INF] Route matched with {area = "account", action = "Index", controller = "Error", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Index(System.String) on controller Volo.Abp.Account.Web.Areas.Account.Controllers.ErrorController (Volo.Abp.Account.Pro.Public.Web.IdentityServer).
[09:35:56 INF] Executing action method Volo.Abp.Account.Web.Areas.Account.Controllers.ErrorController.Index (Volo.Abp.Account.Pro.Public.Web.IdentityServer) - Validation state: Valid
[09:35:56 INF] Executed action method Volo.Abp.Account.Web.Areas.Account.Controllers.ErrorController.Index (Volo.Abp.Account.Pro.Public.Web.IdentityServer), returned result Microsoft.AspNetCore.Mvc.ViewResult in 5.1196ms.
[09:35:56 INF] Executing ViewResult, running view ~/Views/Error/500.cshtml.
  • Steps to reproduce the issue:

Start host, start angular, go to localhost:4200/loginmethod, select tenant, click sign in.

So to recap.

I update my package.json with the json you provided. Where do I add the code below? A random file under "projects > identity"?

{
  provide: OPEN_AUTHORITY_DELEGATION_MODAL,
  useFactory: () => noop,
  deps: [Injector],
},

I don't completely understand what you mean by your suggestion. This project was not originally set up by me, so I have no knowledge of downloading or editing packages.

Yarn command output: (see package.json for this run below)

PS C:\local-workdir\KBEOILTG\project-partnerportal\angular> yarn
yarn install v1.22.22
info No lockfile found.
[1/4] Resolving packages...
warning @abp/ng.schematics > @angular/cli > pacote > read-package-json@6.0.4: This package is no longer supported. Please use @npmcli/package-json instead.
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > make-fetch-happen > cacache > glob@8.1.0: Glob versions prior to v9 are no longer supported
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > npmlog@6.0.2: This package is no longer supported.
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > make-fetch-happen > cacache > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > rimraf > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > glob > inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > make-fetch-happen > cacache > glob > inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > make-fetch-happen > cacache > @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > make-fetch-happen > cacache > @npmcli/move-file > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported        
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > npmlog > gauge@4.0.4: This package is no longer supported.
warning @abp/ng.schematics > @angular/cli > pacote > @npmcli/run-script > node-gyp > npmlog > are-we-there-yet@3.0.1: This package is no longer supported.
warning @angular-devkit/build-angular > webpack-dev-server > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
warning @angular-devkit/build-angular > babel-plugin-istanbul > test-exclude > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning @angular-devkit/build-angular > webpack-dev-middleware > memfs@3.6.0: this will be v4
warning @angular-devkit/build-angular > webpack-dev-server > webpack-dev-middleware > memfs@3.6.0: this will be v4
warning eslint > @humanwhocodes/config-array@0.5.0: Use @eslint/config-array instead
warning eslint > file-entry-cache > flat-cache > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
warning eslint > @humanwhocodes/config-array > @humanwhocodes/object-schema@1.2.1: Use @eslint/object-schema instead
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 99.49s.

Package.json (yes I know i changed it back to ~8.2.3, instead of ^8.2.3, but I had incorrect peer dependencies with the latter):

{
  "name": "PartnerPortal",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --open",
    "build": "ng build",
    "build:prod": "ng build --configuration production",
    "watch": "ng build --watch --configuration development",
    "test": "ng test",
    "lint": "ng lint"
  },
  "private": true,
  "dependencies": {
    "@abp/ng.components": "~8.2.3",
    "@abp/ng.core": "~8.2.3",
    "@abp/ng.oauth": "~8.2.3",
    "@abp/ng.setting-management": "~8.2.3",
    "@abp/ng.theme.shared": "~8.2.3",
    "@angular/animations": "^17.3.9",
    "@angular/cdk": "^17.3.9",
    "@angular/common": "^17.3.9",
    "@angular/compiler": "^17.3.9",
    "@angular/core": "^17.3.9",
    "@angular/forms": "^17.3.9",
    "@angular/localize": "^17.3.9",
    "@angular/platform-browser": "^17.3.9",
    "@angular/platform-browser-dynamic": "^17.3.9",
    "@angular/router": "^17.3.9",
    "@fortawesome/fontawesome-free": "^5.15.3",
    "@ng-bootstrap/ng-bootstrap": "^16.0.0",
    "@ngx-translate/core": "^15.0.0",
    "@ngx-translate/http-loader": "^6.0.0",
    "@popperjs/core": "~2.11.8",
    "@tinymce/tinymce-angular": "^8.0.1",
    "@types/bootstrap": "^5.1.0",
    "@types/object-path": "^0.11.1",
    "@types/prismjs": "^1.16.6",
    "@volo/abp.commercial.ng.ui": "~8.2.3",
    "@volo/abp.ng.account": "~8.2.3",
    "@volo/abp.ng.audit-logging": "~8.2.3",
    "@volo/abp.ng.file-management": "~8.2.3",
    "@volo/abp.ng.identity": "~8.2.3",
    "@volo/abp.ng.identity-server": "~8.2.3",
    "@volo/abp.ng.language-management": "~8.2.3",
    "@volo/abp.ng.saas": "~8.2.3",
    "@volo/abp.ng.text-template-management": "~8.2.3",
    "@volo/abp.ng.theme.lepton": "~8.2.3",
    "angular-in-memory-web-api": "^0.17.0",
    "angular-svg-icon": "^17.0.0",
    "animate.css": "^4.1.1",
    "apexcharts": "^3.27.2",
    "bootstrap": "^5.0.2",
    "bootstrap-icons": "^1.5.0",
    "clipboard": "^2.0.8",
    "dompurify": "^2.3.10",
    "flag-icons": "^7.2.3",
    "jquery": "^3.6.0",
    "line-awesome": "^1.3.0",
    "ng-apexcharts": "1.8.0",
    "ngx-quill": "^16.1.2",
    "nouislider": "^15.2.0",
    "object-path": "^0.11.5",
    "prism-themes": "^1.8.0",
    "prismjs": "^1.25.0",
    "quill": "^1.3.7",
    "rxjs": "^7.8.1",
    "socicon": "^3.0.5",
    "tslib": "^2.7.0",
    "typescript": "5.3.3",
    "zone.js": "~0.14.10"
  },
  "devDependencies": {
    "@abp/ng.schematics": "~8.2.3",
    "@angular-devkit/build-angular": "^17.3.9",
    "@angular/compiler-cli": "^17.3.9",
    "@angular/language-service": "^17.3.9",
    "@types/jasmine": "~3.6.0",
    "@types/node": "^12.11.1",
    "eslint": "^7.32.0",
    "jasmine-core": "~3.7.0",
    "ng-packagr": "^17.3.0"
  }
}

Yarn start output:

Build at: 2024-09-05T09:53:53.330Z - Hash: 0eb6dd304de4a718 - Time: 26454ms

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\@uppy\core\lib\Uppy.js depends on 'lodash/throttle.js'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\@uppy\core\lib\Uppy.js depends on 'namespace-emitter'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\@uppy\dashboard\lib\components\Dashboard.js depends on 'classnames'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\@uppy\dashboard\lib\components\FileItem\index.js depends on 'is-shallow-equal'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\@uppy\dashboard\lib\utils\createSuperFocus.js depends on 'lodash/debounce.js'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\ng-apexcharts\fesm2020\ng-apexcharts.mjs depends on 'apexcharts'. CommonJS or AMD dependencies can cause optimization bailouts.   
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\node_modules\ngx-quill\fesm2020\ngx-quill.mjs depends on 'quill'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\projects\account\public\src\components\profile-picture\profile-picture.component.ts depends on 'cropperjs'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: C:\local-workdir\KBEOILTG\project-partnerportal\angular\src\app\_metronic\layout\core\layout.service.ts depends on 'object-path'. CommonJS or AMD dependencies can cause optimization bailouts.        
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies



** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **


√ Compiled successfully.
✔ Browser application bundle generation complete.

Initial chunk files | Names   | Raw size
runtime.js          | runtime | 14.14 kB | 

531 unchanged chunks

Build at: 2024-09-05T09:53:58.486Z - Hash: c1c8909bc5c1816f - Time: 3141ms

√ Compiled successfully.
✔ Browser application bundle generation complete.



532 unchanged chunks

Build at: 2024-09-05T09:54:01.426Z - Hash: c1c8909bc5c1816f - Time: 1755ms

√ Compiled successfully.

I'm trying to cover all possibilities here.

Am I missing something or is there something off in my tsconfig.json file?

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "ES2022",
    "module": "ESNext",
    "lib": [
      "es2018",
      "dom"
    ],
    "paths": {
      "@proxy": [
        "src/app/proxy/index.ts"
      ],
      "@proxy/*": [
        "src/app/proxy/*"
      ],
      "@volo/abp.ng.account": [
        "projects/account/src/public-api.ts"
      ],
      "@volo/abp.ng.account/admin": [
        "projects/account/admin/src/public-api.ts"
      ],
      "@volo/abp.ng.account/config": [
        "projects/account/config/src/public-api.ts"
      ],
      "@volo/abp.ng.account/public": [
        "projects/account/public/src/public-api.ts"
      ],
      "@volo/abp.ng.account/admin/config": [
        "projects/account/admin/config/src/public-api.ts"
      ],
      "@volo/abp.ng.account/public/config": [
        "projects/account/public/config/src/public-api.ts"
      ],
      "@volo/abp.ng.account/public/proxy": [
        "projects/account/public/proxy/src/public-api.ts"
      ],
      "@volo/abp.ng.identity": [
        "projects/identity/src/public-api.ts"
      ],
      "@volo/abp.ng.identity/config": [
        "projects/identity/config/src/public-api.ts"
      ],
      "@volo/abp.ng.identity/proxy": [
        "projects/identity/proxy/src/public-api.ts"
      ],
      "@volo/abp.ng.saas": [
        "projects/saas/src/public-api.ts"
      ],
      "@volo/abp.ng.saas/config": [
        "projects/saas/config/src/public-api.ts"
      ],
      "@volo/abp.ng.saas/proxy": [
        "projects/saas/proxy/src/public-api.ts"
      ]
    },
    "useDefineForClassFields": false
  },
  "angularCompilerOptions": {
    "enableI18nLegacyMessageIdFormat": false
  }
}

Should I be using this package instead? "@volosoft/abp.ng.theme.lepton-x": "~2.4.0-rc.4",

This would require a lot of changes to a lot of different files across my solution.

Should I be using this package instead? "@volosoft/abp.ng.theme.lepton-x": "~2.4.0-rc.4",

Is it possible I am doing something wrong when importing to my modules?

shared.module.ts:

import { CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { NgModule } from '@angular/core';
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
import { ThemeLeptonModule } from '@volo/abp.ng.theme.lepton';
import { SharedUtilsService } from './shared.utils';

@NgModule({
  declarations: [
  ],
  imports: [
    CoreModule,
    ThemeSharedModule,
    ThemeLeptonModule,
    CommercialUiModule,
    NgbDropdownModule,
    NgxValidateCoreModule
  ],
  exports: [
    CoreModule,
    ThemeSharedModule,
    ThemeLeptonModule,
    CommercialUiModule,
    NgbDropdownModule,
    NgxValidateCoreModule,
  ],
  providers: [SharedUtilsService]
})
export class SharedModule { }

app.module.ts

...
import { ThemeLeptonModule } from '@volo/abp.ng.theme.lepton';
...

@NgModule({
    declarations: [
        AppComponent,
        ApproveUserActionComponent,
    ],
    imports: [
        ...
        ThemeLeptonModule.forRoot({
            customStyle: true
        }),
        ...
    ],
    providers: [
        ApproveUserActionComponent],
    bootstrap: [AppComponent],
})
export class AppModule { }

NullInjectorError: NullInjectorError: No provider for InjectionToken OPEN_AUTHORITY_DELEGATION_MODAL!
    at NullInjector.get (core.mjs:1654:27)
    at R3Injector.get (core.mjs:3093:33)
    at R3Injector.get (core.mjs:3093:33)
    at injectInjectorOnly (core.mjs:1100:40)
    at ɵɵinject (core.mjs:1106:60)
    at inject (core.mjs:1192:12)
    at Object.configureUserMenu [as useFactory] (volo-abp.ng.theme.lepton.mjs:1203:48)
    at Object.factory (core.mjs:3322:38)
    at core.mjs:3219:47
    at runInInjectorProfilerContext (core.mjs:866:9)
Showing 1 to 10 of 26 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 19, 2024, 10:13