Skip to content

[bug] [opencode] bad headers from any provider could result in negative 'max-retry' #41424

Description

@kennyjinhiro

Description

SessionRetry.delay accepts negative values for retry-after and retry-after-ms.

For example, retry-after-ms: -1 returns -1.

Eventually, negative value then sadly reaches retry scheduling, instead of falling back to normal exponential backoff.

This is because if (retry-after) and if (retry-after-ms), are both nullable conditions for 0 only. Not negatives.

Expected

I will force negative retry values to use normal backoff instead.

Plugins

none

OpenCode version

1.18.15

Steps to reproduce

  1. Call SessionRetry.delay(1, apiError({ "retry-after-ms": "-1" })).
  2. Observe result is -1.
  3. Repeat with retry-after: "-1"; result is -1000.

Screenshot and/or share link

Image

Operating System

macOS 26.2, arm64

Terminal

Ghostty

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