Note: this issue was drafted by Claude via back-and-forth with @njbrake. The reasoning and decisions are his; the prose is Claude's.
The CI workflow's Integration Tests job has been failing on main on every push for a while (at least since 2026-04-28, well before the Option C SDK migration). It is unrelated to the SDK code: the Test, Clippy, Format, Docs, MSRV, and Check jobs all pass.
Cause
tests/integration_batch.rs contains #[ignore = "requires a running gateway server"] live tests (live_create_and_retrieve_batch, live_retrieve_batch_results_not_complete). The CI job runs them via --ignored, but GitHub CI has no gateway, and the tests build a client from Config::default() (no base URL), so the first request panics:
called `Result::unwrap()` on an `Err`: Http(reqwest::Error { kind: Builder, source: RelativeUrlWithoutBase })
So the job can never pass in CI as written, because it executes live gateway tests with no gateway and no base URL configured.
Suggested fix (pick one)
- Skip when unconfigured (preferred, matches the Python and Go SDK integration tests): have each live test early-return/skip when the gateway base URL env var is absent, instead of constructing a client with an empty base. This keeps
main green while still letting the tests run locally against a real gateway.
- Or gate the Integration Tests CI job so it only runs when a gateway is provisioned (for example a service container or an explicit
OTARI_GATEWAY_* env), rather than on every push.
Notes
Found while merging the Option C SDK migration (#27). The migration itself is green on all other jobs; this is a separate, pre-existing CI issue and should not be attributed to that work.
The
CIworkflow's Integration Tests job has been failing onmainon every push for a while (at least since 2026-04-28, well before the Option C SDK migration). It is unrelated to the SDK code: theTest,Clippy,Format,Docs,MSRV, andCheckjobs all pass.Cause
tests/integration_batch.rscontains#[ignore = "requires a running gateway server"]live tests (live_create_and_retrieve_batch,live_retrieve_batch_results_not_complete). The CI job runs them via--ignored, but GitHub CI has no gateway, and the tests build a client fromConfig::default()(no base URL), so the first request panics:So the job can never pass in CI as written, because it executes live gateway tests with no gateway and no base URL configured.
Suggested fix (pick one)
maingreen while still letting the tests run locally against a real gateway.OTARI_GATEWAY_*env), rather than on every push.Notes
Found while merging the Option C SDK migration (#27). The migration itself is green on all other jobs; this is a separate, pre-existing CI issue and should not be attributed to that work.