Skip to content

Bug: DigitalOcean OAuth fails because Model Access Key creation endpoint is retired #27764

Closed as not planned

Description

@cch1rag

Description

DigitalOcean OAuth currently fails during /connect because the plugin attempts to auto-create a Model Access Key through a retired endpoint.

After completing the DigitalOcean OAuth browser flow, opencode receives the callback, then fails while creating the Model Access Key:

INFO  2026-05-15T16:11:39 +14609ms service=plugin.digitalocean port=1456 digitalocean oauth server started
ERROR 2026-05-15T16:11:51 +11754ms service=plugin.digitalocean error=Failed to create Model Access Key (410): {"id":"gone","message":"resource retired: Creating model API keys through this endpoint is retired. Go to ${MODEL_STUDIO_MANAGE_KEYS_URL} to create a model access key."}
 digitalocean oauth callback failed
INFO  2026-05-15T16:11:51 +5ms service=plugin.digitalocean digitalocean oauth server stopped

This appears to break the DigitalOcean OAuth path added in #26095, because the implementation expects /connect to provision a Model Access Key automatically after OAuth.

Expected behavior:

DigitalOcean OAuth should complete successfully, or opencode should fall back to a manual Model Access Key flow if DigitalOcean no longer allows creating these keys through the API endpoint.

Actual behavior:

OAuth completes in the browser, but opencode fails during the callback because the Model Access Key creation request returns:

{
  "id": "gone",
  "message": "resource retired: Creating model API keys through this endpoint is retired. Go to ${MODEL_STUDIO_MANAGE_KEYS_URL} to create a model access key."
}

Additional context:

opencode already supports authentication with an existing Model Access Key. The broken path is OAuth-based Inference Router discovery: /connect tries to auto-create a Model Access Key after OAuth, but DigitalOcean now returns 410 gone because that endpoint is retired. This prevents DigitalOcean Inference Routers from being surfaced in opencode until the OAuth provisioning flow is updated.

Plugins

DigitalOcean

OpenCode version

1.15.0

Steps to reproduce

  1. Run opencode.
  2. Use /connect.
  3. Select DigitalOcean.
  4. Complete the DigitalOcean OAuth flow in the browser.
  5. Return to opencode.
  6. Observe that the callback fails with Failed to create Model Access Key (410).

Screenshot and/or share link

Image

Operating System

macOS Tahoe 26.5

Terminal

Ghostty

Activity

  1. bgoewert commented on Jul 6, 2026

    @bgoewert

    This was fixed in #28897. Okay to close. I tested that /connect works okay with DigitalOcean for both the Model Access Key and OAuth.

  2. github-actions commented on Sep 5, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

  3. bgoewert commented on Sep 5, 2026

    @bgoewert

    I guess no one else used DO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions