{"version":"2.1.277","anchor":"plugin-install-errors-now-marked-as-ours-for-downstream-ha","canonical_anchor":"plugin-install-errors-now-marked-as-ours-for-downstream-ha","heading":"Plugin install errors now marked as \"ours\" for downstream handling","tier":"use","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.277\/e\/plugin-install-errors-now-marked-as-ours-for-downstream-ha","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.277","markdown":"### Plugin install errors now marked as \"ours\" for downstream handling\n\nDesign login now accepts a manually pasted authorization code more flexibly, with clearer failure reasons\n\n**What**\n\nThe sign-in flow behind `\/design-login` (which connects your claude.ai account so `\/design-sync` can read and write design-system projects) has been reworked. It now supports pasting in an authorization code manually even in situations where it previously wasn't offered, since Claude Code can no longer always assume whether a browser can reach the local sign-in listener.\n\nWhen the login fails, it now returns one of several specific reason codes: `interrupted`, `unconfigured`, `remote`, `invalid`, `save_failed`, `timed_out`, or `failed`, instead of just a generic message. A new check can also abort the flow partway through, after a login slot is validated.\n\n**Why**\n\nThe more flexible manual-code path means you're less likely to get stuck when Claude Code can't tell whether a browser-based login will work, particularly on remote sessions. The structured failure reasons make it clearer why a login attempt didn't succeed.\n\n- Area: Elsewhere\n- Names: `\/design-login`\n- Tier: Use it now\n- Useful: 2\/5\n- Signal: 2\/5"}