Umbraco 17 Cloud local: Umbraco ID login loops to /umbraco/login when umbracoExternalLogin row exists (requires deleting row every login)

Product / Version

  • Umbraco CMS: 17.0.2

  • Umbraco Cloud packages: latest 17.x

  • Auth: Umbraco ID (Cloud)

  • Local URL: https://localhost:44381

Expected

  • After successful Umbraco ID login, user is signed into backoffice normally.

Actual

  • Umbraco ID login succeeds, returns to localhost, but backoffice then redirects to /umbraco/login (local login screen).

  • Happens consistently in a new InPrivate session.

Repro steps

  1. Run project locally (Cloud project).

  2. Open https://localhost:12345/umbraco in an InPrivate window.

  3. Choose “Login with Umbraco ID”, complete auth.

  4. Returned to localhost but redirected back to /umbraco/login (not logged in).

  5. In DB, delete the external login row for the user

  6. Retry login in the same InPrivate window → login succeeds.

  7. Close window, open a new InPrivate window and repeat step 2–4 → fails again unless the row is deleted again.

Database state

  • umbracoUser exists for the email, userDisabled = 0, in admin group.

  • umbracoExternalLogin row created after successful login:

    • loginProvider = Umbraco.UmbracoId

    • providerKey = as expected - matches the value in JWT token

    • userOrMemberKey = matches the correct user from the UmbracoUser table

    • Row is recreated with identical values after each login (only createDate changes).

  • JWT from /umbidlocallogin?ub=...:

    • sub matches providerKey

    • iss = https://identity.umbraco.com/<tenant-guid>/v2.0/

Notes

  • Not a cookie persistence issue: reproduces without restarting the app and with fresh InPrivate sessions.

  • umbracoExternalLoginToken table exists but stays empty.

  • UmbracoIdTokenCache contains token/expiry.

Additional Background

  • Project was upgraded to v17 from v14 and everything has worked on v14 for a long period prior to the upgrade.

The solution to the above seems to have been to follow all of the documented instructions for updating the Umbraco version to v17. Some of the steps had not been followed correctly.