Skip to content

Fix: say what makes a socket proxy address reachable - #43

Merged
SandObserver merged 1 commit into
mainfrom
fix/socket-proxy-address-guidance
Aug 12, 2026
Merged

SandObserver merged 1 commit into
mainfrom
fix/socket-proxy-address-guidance

Conversation

@SandObserver

Copy link
Copy Markdown
Owner

Summary

  • Return a hint from POST /api/docker/test naming which address shape failed: a service name needing a shared Docker network, or an address needing its port published where a container can reach it.
  • Treat a timeout on a literal address as a refusal rather than a warning, since a port bound on another namespace's loopback drops packets instead of refusing them, and that is the commonest wrong address.
  • Append the translated remedy for the hint to both the refusal and the warning raised on save.
  • Rewrite the socket URL settings hint to state what each address shape requires, and link it to the troubleshooting section.
  • Expand that section with the compose fragments for joining the proxy's network and for republishing its port on the Docker bridge address, including why network_mode: bridge resolves no service name and why 0.0.0.0 is worth avoiding.

Testing
All green. Added 3 tests covering both hints and the timeout reclassification.

Checklist

  • Stays within the project constraints: one container, no runtime dependencies, no build step (see CONTRIBUTING.md).
  • Tests added or updated for new logic, and the full suite, lint, and typechecks pass.
  • Docs updated if behavior or configuration changed.
  • CHANGELOG.md updated under Unreleased if the change is user-visible.

A socket proxy address fails for one of two opposite reasons, and neither
error text distinguishes them. A service name is resolved by Docker's DNS,
which answers only for containers sharing a network; an IP reaches only what
the proxy published, and the usual compose publishes on the host's loopback,
which no container can reach at any address.

The probe now returns which shape the address is, and the save reports the
matching remedy alongside the error. The settings hint states both rules
before the mistake is made and links to the troubleshooting section, which
gains the compose fragments for each fix.

A timeout on a literal address is now refused rather than warned about.
Packets to a port bound on another namespace's loopback are dropped rather
than refused, so the commonest wrong address arrived as a timeout and saved
quietly under the old rule.
@SandObserver SandObserver added the bug Something isn't working label Aug 12, 2026
@SandObserver
SandObserver merged commit ce6fd36 into main Aug 12, 2026
4 checks passed
@SandObserver
SandObserver deleted the fix/socket-proxy-address-guidance branch August 12, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant