{"version":"2.1.221","anchor":"artifact-comment-errors-distinguish-egress-proxy-blocks-and-","canonical_anchor":"artifact-comment-errors-distinguish-egress-proxy-blocks-and-","heading":"Artifact comment errors distinguish egress-proxy blocks and non-activated threads","tier":"soon","area":"Artifacts","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/artifact-comment-errors-distinguish-egress-proxy-blocks-and-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### Artifact comment errors distinguish egress-proxy blocks and non-activated threads\n\nArtifact comment failures would name the real cause, like a proxy block or an unactivated thread, once enabled.\n\n**What**\n\nThe artifact comments paths classify several failures specifically instead of reporting a generic HTTP error.\n\n**Details**\n\n- Reading comments through a network egress proxy that blocks the artifact content host returns a dedicated message stating this is not a transient failure, detected from HTTP 403 plus the `x-proxy-error` header value `blocked-by-allowlist`.\n- Replying to a thread the user has not activated for Claude is detected from the body text and reported as a distinct `not_activated` outcome rather than a generic 403.\n- Resolve failures map 409\/403 bodies to `superseded`, `grant_inactive`, and `principal_mismatch`.\n- Behind the same artifact-comments gate, so unreachable in this build absent a server value.\n\n**Evidence**\n\n`the network egress proxy in this environment blocks the artifact content host \u2014 comments cannot be read here (not a transient failure)`\n\n- Area: Artifacts\n- Names: `CLAUDE_CODE_ARTIFACT_COMMENTS`\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 2\/5\n- Present in the build but not switched on"}