Repository navigation
Conversation
Kafka Connect in Redpanda Cloud may sit behind connect-gate, which scales the workers to zero when idle and answers mutating calls with a 503 while they boot. The connect-client reduces that to a code and message, so the retry hints were lost and the REST layer returned a plain failure; validate even reported HTTP 200. Capture the gate's response in a transport wrapper, scoped to the request through its context, and carry it as a StartingError. The REST handlers then send 503 with Retry-After plus reason/phase/retryAfterSeconds in the body, and the Connect-RPC services return CodeUnavailable with RetryInfo and ErrorInfo metadata instead of CodeInternal. Validate now uses the upstream status code like the other calls. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
When Kafka Connect has been scaled to zero, its first mutating call gets a 503 with reason kafka_connect_starting and a retry hint. The create wizard, the properties step and the connector action dialog now show a "Kafka Connect is starting… retrying in Ns" state and retry on their own until the workers answer, instead of a terminal error. Also catches validation failures in the Review step: the throw there escaped the wizard and left the step on its loading skeleton. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
🚨 Registry drift detectedApp:
Components needing attention
Refresh command: bunx shadcn@latest add @redpanda/code-block @redpanda/stat --overwriteGenerated by lookout audit-changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Redpanda Cloud is adding
connect-gate(redpanda-data/cloudv2#30703), a proxy in front of Kafka Connect that lets the workers scale to zero when idle. While the workers boot, the gate answers mutating calls with503, aRetry-Afterheader and a body like:{"error_code":503,"reason":"kafka_connect_starting","phase":"pulling-image","retry_after_seconds":60,"estimated_wait_seconds":180,"message":"Kafka Connect is starting (pulling the Kafka Connect image). Retry in about 3m0s."}Today Console turns that into a terminal red error (and the validate endpoint even returns HTTP 200 for it), so a user creating the first connector after a quiet period sees "Failed to validate Connector config: … (503)" with no hint that waiting a few minutes fixes it.
Backend
Retry-Afterper request (the client itself keeps onlyerror_codeandmessage), carried asconnect.StartingError.503withRetry-Afterandreason,phase,retryAfterSeconds,estimatedWaitSecondsin the body. Other errors are unchanged.KafkaConnectService(v1, v1alpha2) maps503toCodeUnavailablewithRetryInfoandErrorInfometadata instead ofCodeInternal.Frontend
retryWhileKafkaConnectStartingretries a call while it fails withreason: kafka_connect_starting, honouring the retry hint (15 min budget), with a per-second countdown callback.Examples
REST, while the workers boot:
Connect-RPC:
unavailablewithRetryInfo{retry_delay: 60s}andErrorInfo{reason: REASON_KAFKA_CONNECT_API_ERROR, metadata: {reason: kafka_connect_starting, phase: pulling-image, retry_after_seconds: 60}}.UI recording: to be added from an integration cluster running connect-gate (cloudv2 integration pack
26.2.20261006181804bundles this branch asconsole-unstable:sl-kafka-connect-starting-503-8480a75).Tests:
go test ./pkg/connect/...(transport capture, ordinary 503 untouched, header/default fallbacks),src/utils/kafka-connect-starting.test.ts.🤖 Generated with Claude Code