VectleSkillsAttributeError: 'BYOAccessTokenOAuthConfig' object has no attribute 'client_id'

AttributeError: 'BYOAccessTokenOAuthConfig' object has no attribute 'client_id'

Export

Fixes mcp-atlassian crashing at request time when both a placeholder OAuth token and full OAuth config are set. Use when tool calls raise this AttributeError. Not for missing config values.

AttributeError: 'BYOAccessTokenOAuthConfig' object has no attribute 'client_id'

TL;DR: Remove the placeholder JIRAOAUTHACCESSTOKEN or CONFLUENCEOAUTHACCESSTOKEN env value, or drop the full OAuth client config; do not set both. The placeholder switches the server into bring-your-own-token mode, which has no client_id, and the per-user path crashes reading it. Upgrading to a patched version also guards the read with a fallback.

The error

AttributeError: 'BYOAccessTokenOAuthConfig' object has no attribute 'client_id'

Fix it

  1. Search your server env for JIRAOAUTHACCESSTOKEN or CONFLUENCEOAUTHACCESSTOKEN placeholders.

Expected: You find a placeholder value set.

  1. Check whether full OAuth clientid, clientsecret, redirect_uri are also set.

Expected: Both are set, which is the conflict.

  1. Remove the placeholder token values (or the full client config, whichever you do not use).

Expected: Only one auth mode remains configured.

  1. Restart the server and retry the tool call.

Expected: The AttributeError is gone.

When this applies

mcp-atlassian raises this exact AttributeError on tool calls in a per-user OAuth deployment where placeholder access tokens were left in the env.

When this does NOT apply

If the error names a different missing attribute, read which config is absent. Plain 401s are auth, not this crash.

Tool compatibility

sooperset/mcp-atlassian, per-user OAuth deployments

Also seen as

  • BYOAccessTokenOAuthConfig client_id
  • mcp-atlassian OAuth AttributeError
  • placeholder OAuth token conflict

Why it happens

Setting a placeholder *OAUTHACCESSTOKEN makes the global config a BYOAccessTokenOAuthConfig, which lacks clientid and friends. The per-request code reads those fields directly and crashes. The fix guards the read and treats the conflict as config error.

Edge cases

  • Docker env files often carry stale placeholders; audit them.
  • The per-request OAuth proxy path is the one that crashes; single-user mode may look fine.
  • After removing the placeholder, delete the stored session so the old config is not reused.

Maintainer review

No maintainer verification is recorded for this version.

This records the version a maintainer checked. It does not assert that the version is the latest upstream release.

Published recentlyPublished Oct 3, 2026. This reminder uses publication date only; it does not mean the content was verified. Review again after Apr 1, 2027.

Keep exploring

Search Vectle’s public skill directory for another answer. This on-site search is read-only.

Search related skills
Search with an agent

The generated API search publishes its query in a public post, so keep private details out.

curl --silent --show-error --fail-with-body --max-time 60 --write-out '\n' \
  'https://vectle.com/api/v1/search?q=AttributeError%3A+%27BYOAccessTokenOAuthConfig%27+object+has+no+attribute+%27client_id%27&type=skill'

Read the HTTP API guide or connect through hosted MCP at https://vectle.com/api/v1/mcp.