Jump to solution
Verify

The Fix

Upgrade to version 0.14.0 or later.

Based on closed encode/httpx issue #950 · PR/commit linked

Jump to Verify Open PR/Commit
@@ -5,22 +5,12 @@ if [ -d 'venv' ] ; then fi +set -ex + if [ -z $GITHUB_ACTIONS ]; then
repro.py
#!/bin/sh -e export PREFIX="" if [ -d 'venv' ] ; then export PREFIX="venv/bin/" fi export FIX=""; [ "$1" == --fix ] && FIX=true export SOURCE_FILES="httpx tests" BLACK_OPTS="--check --diff"; [ $FIX ] && BLACK_OPTS="" ISORT_OPTS="--check --diff"; [ $FIX ] && ISORT_OPTS="--apply" set -x if [ $FIX ]; then ${PREFIX}seed-isort-config --application-directories=httpx ${PREFIX}autoflake --in-place --recursive $SOURCE_FILES else ${PREFIX}flake8 $SOURCE_FILES ${PREFIX}mypy httpx fi ${PREFIX}black $BLACK_OPTS --target-version=py38 $SOURCE_FILES ${PREFIX}isort $ISORT_OPTS --project=httpx --recursive $SOURCE_FILES
verify
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
fix.md
Option A — Upgrade to fixed release\nUpgrade to version 0.14.0 or later.\nWhen NOT to use: This fix is not suitable if auto-prompting is desired for user interaction.\n\n

Why This Fix Works in Production

  • Trigger: * `scripts/coverage` *Okay, this doesn't actually exist yet, but it's proposed in https://github.com/encode/httpx/issues/316#issuecomment-629099105*
  • Mechanism: The auto-prompting feature for running scripts/lint was found to be more annoying than useful
  • Why the fix works: Drops the auto-prompting feature for running scripts/lint, which was found to be more annoying than useful. (first fixed release: 0.14.0).

Why This Breaks in Prod

  • The auto-prompting feature for running scripts/lint was found to be more annoying than useful
  • Production symptom (often without a traceback): * `scripts/coverage` *Okay, this doesn't actually exist yet, but it's proposed in https://github.com/encode/httpx/issues/316#issuecomment-629099105*

Proof / Evidence

  • GitHub issue: #950
  • Fix PR: https://github.com/encode/httpx/pull/1107
  • First fixed release: 0.14.0
  • Reproduced locally: No (not executed)
  • Last verified: 2026-02-09
  • Confidence: 0.85
  • Did this fix it?: Yes (upstream fix exists)
  • Own content ratio: 0.55

Discussion

High-signal excerpts from the issue thread (symptoms, repros, edge-cases).

“Chiming in, it probably doesn't matter too much, but I believe linters/formatters most often have a --check flag, which would map down easily from scripts/lint…”
@StephenBrown2 · 2020-05-15 · source
“It's actually a mix and depends on the tool: | Tool | Check invocation | Fix invocation | | --- | --- | --- |…”
@florimondmanca · 2020-05-15 · source
“- Agreed with 1/ - Agreed with 2/ too - scripts/clean sounds less useful now that we publish from CI, where the env is always…”
@florimondmanca · 2020-05-15 · source
“Ah, I see”
@StephenBrown2 · 2020-05-15 · source

Failure Signature (Search String)

  • * `scripts/coverage` *Okay, this doesn't actually exist yet, but it's proposed in https://github.com/encode/httpx/issues/316#issuecomment-629099105*
  • Chiming in, it probably doesn't matter too much, but I believe linters/formatters most often have a `--check` flag, which would map down easily from `scripts/lint [--check]` (Pass
Copy-friendly signature
signature.txt
Failure Signature ----------------- * `scripts/coverage` *Okay, this doesn't actually exist yet, but it's proposed in https://github.com/encode/httpx/issues/316#issuecomment-629099105* Chiming in, it probably doesn't matter too much, but I believe linters/formatters most often have a `--check` flag, which would map down easily from `scripts/lint [--check]` (Pass down --check to contained programs)

Error Message

Signature-only (no traceback captured)
error.txt
Error Message ------------- * `scripts/coverage` *Okay, this doesn't actually exist yet, but it's proposed in https://github.com/encode/httpx/issues/316#issuecomment-629099105* Chiming in, it probably doesn't matter too much, but I believe linters/formatters most often have a `--check` flag, which would map down easily from `scripts/lint [--check]` (Pass down --check to contained programs)

Minimal Reproduction

repro.py
#!/bin/sh -e export PREFIX="" if [ -d 'venv' ] ; then export PREFIX="venv/bin/" fi export FIX=""; [ "$1" == --fix ] && FIX=true export SOURCE_FILES="httpx tests" BLACK_OPTS="--check --diff"; [ $FIX ] && BLACK_OPTS="" ISORT_OPTS="--check --diff"; [ $FIX ] && ISORT_OPTS="--apply" set -x if [ $FIX ]; then ${PREFIX}seed-isort-config --application-directories=httpx ${PREFIX}autoflake --in-place --recursive $SOURCE_FILES else ${PREFIX}flake8 $SOURCE_FILES ${PREFIX}mypy httpx fi ${PREFIX}black $BLACK_OPTS --target-version=py38 $SOURCE_FILES ${PREFIX}isort $ISORT_OPTS --project=httpx --recursive $SOURCE_FILES

What Broke

No significant production failure was reported, but user experience was negatively impacted.

Why It Broke

The auto-prompting feature for running scripts/lint was found to be more annoying than useful

Fix Options (Details)

Option A — Upgrade to fixed release Safe default (recommended)

Upgrade to version 0.14.0 or later.

When NOT to use: This fix is not suitable if auto-prompting is desired for user interaction.

Use when you can deploy the upstream fix. It is usually lower-risk than long-lived workarounds.

Fix reference: https://github.com/encode/httpx/pull/1107

First fixed release: 0.14.0

Last verified: 2026-02-09. Validate in your environment.

Get updates

We publish verified fixes weekly. No spam.

Subscribe

When NOT to Use This Fix

  • This fix is not suitable if auto-prompting is desired for user interaction.

Verify Fix

verify
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.

Did This Fix Work in Your Case?

Quick signal helps us prioritize which fixes to verify and improve.

Prevention

  • Add a CI check that diffs key outputs after upgrades (OpenAPI schema snapshots, JSON payload shapes, CLI output).
  • Upgrade behind a canary and run integration tests against the canary before 100% rollout.

Version Compatibility Table

VersionStatus
0.14.0 Fixed

Related Issues

No related fixes found.

Sources

We don’t republish the full GitHub discussion text. Use the links above for context.