Outcall
SpecificationsS008 · Docker Manager

Edge cases

S008 Edge Cases

IDScenarioExpected Behavior
S008-EC-001Host socket path in bind mountsReject before calling Docker API. Error identifies the denied path. This is the critical security invariant.
S008-EC-002Target network does not existReturn error. Do not create the container.
S008-EC-003Docker daemon unreachableReturn error with descriptive message.
S008-EC-004Container does not exist (stop/remove)Return error: container "<name>" does not exist.
S008-EC-005Image not found locally (create)Return error: image "<image>" not found locally — pull it first. Do not trigger implicit pull.
S008-EC-006Image pull fails (network error, auth)Return error with the upstream Docker message.
S008-EC-007Stop called on already-stopped containerReturn success with stopped: false. Idempotent.
S008-EC-008Remove called on already-removed containerReturn success with removed: false. Idempotent.
S008-EC-009Multiple rapid create callsEach call generates a unique name. No collision due to random hex suffix.
S008-EC-010Daemon shutdown with running containersContainers are NOT stopped. Dynamic direct-egress grants are removed, and the strict base nftables policy remains active while proxy, DNS, and control sockets are unavailable. On restart, outcalld rediscovers containers by the managed-by=outcalld label and restores control-plane services.
S008-EC-011Docker available at startup but disappears laterIndividual endpoint calls return Docker connection errors. The daemon continues running.
S008-EC-012Symlink traversal in bind mount sourceoutcalld MUST resolve symlinks before checking the deny list. A symlink to the host socket MUST be caught.
S008-EC-013Duplicate container name (custom suffix collides)Docker rejects the create. outcalld returns the Docker error to the caller.
S008-EC-014Resource limit exceeds host capacityDocker may accept the create but OOM-kill the container. outcalld does not pre-validate against host resources.
S008-EC-015Agent socket path does not exist on hostReturn error: agent socket not found at "<path>". Do not create the container.
S008-EC-016Shim binary path does not exist on hostReturn error: shim binary not found at "<path>". Do not create the container.
S008-EC-017Helper source is a symlink, wrong type, or non-executable shimReject before Docker create. Helper source identity is never followed through a symlink.
S008-EC-018Caller mount shadows shim, agent socket, resolver, or a parent directoryReject before Docker create, including named-volume sources and mounts targeting /.
S008-EC-019Inspect, stop, or remove names an unmanaged containerReject without exposing details or changing the container.
S008-EC-020Docker client construction succeeds but _ping hangsEnter degraded mode after the 3-second bound. Do not report Docker initialized.
S008-EC-021Registry address contains a port but no image tagPreserve the registry port and use latest; do not parse the port as a tag.

On this page