{"version":"2.1.223","anchor":"projects-scope-expansion-explains-custom-oauth-clients-and-s","canonical_anchor":"projects-scope-expansion-explains-custom-oauth-clients-and-s","heading":"Projects scope expansion explains custom OAuth clients and save failures","tier":"notice","area":"Auth","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.223\/e\/projects-scope-expansion-explains-custom-oauth-clients-and-s","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.223","markdown":"### Projects scope expansion explains custom OAuth clients and save failures\n\nExpanding Projects permissions now tells you up front when it cannot proceed or could not save credentials.\n\n**What**\n\nExpanding scopes for Projects now refuses up front in cases it cannot handle and gives a distinct reason when the refreshed credentials could not be stored.\n\n**Details**\n\n- a login using a custom OAuth client is refused before any request is made\n- a `save_failed` reason is reported when the server has already consumed the old credentials but the new ones could not be persisted\n- the refresh call is passed an abort signal and a `projects_scope_expansion` telemetry context\n- success and failure of the expansion itself are now reported as telemetry\n\n**Evidence**\n\n`The claude.ai login uses a custom OAuth client, which cannot be granted project scopes.`\n\n- Area: Auth\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 0\/5"}