Summary
In some environments preprocess GET returns status='error' (e.g. status_detail mentioning internal server error). SDK logs preprocess_error_retrying_with_force, POSTs {"force": true} again, then continues polling.
Current behavior (SDK)
run_preprocess treats failed / error as recoverable once: second POST with force: True, then loop continues.
- Between polls, non-terminal states sleep
0.3s (time.sleep(0.3)).
Questions
- Backend: Why does preprocess return
error intermittently or always in affected deployments? Fix server-side if misconfiguration or bug.
- SDK: Should repeated
error after force fail fast instead of polling until timeout/raise?
- SDK: Should
status_detail be logged for operator visibility?
Acceptance criteria
References
src/provably/handoff/_preprocess.py — run_preprocess, log preprocess_error_retrying_with_force
Summary
In some environments preprocess GET returns
status='error'(e.g.status_detailmentioning internal server error). SDK logspreprocess_error_retrying_with_force, POSTs{"force": true}again, then continues polling.Current behavior (SDK)
run_preprocesstreatsfailed/erroras recoverable once: second POST withforce: True, then loop continues.0.3s(time.sleep(0.3)).Questions
errorintermittently or always in affected deployments? Fix server-side if misconfiguration or bug.errorafterforcefail fast instead of polling until timeout/raise?status_detailbe logged for operator visibility?Acceptance criteria
errorpost-force (separate small PR).References
src/provably/handoff/_preprocess.py—run_preprocess, logpreprocess_error_retrying_with_force