Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The docker group change was fine and already active — it was a red herring. The real cause: your WSL ~/.docker/config.json had "currentContext": "desktop-linux", whose endpoint is npipe:////./pipe/dockerDesktopLinuxEngine. npipe:// is a Windows named pipe; the Linux docker CLI has no npipe transport, so it aborts while building the connection — hence a protocol error rather than a permission or "daemon not running" error.
Fix applied (one command, reversible):
docker context use default # → unix:///var/run/docker.sock
Key takeaway for next time: protocol not available is never a permissions problem. Permissions give you permission denied ... /var/run/docker.sock. If the message mentions protocol, check docker context ls / $DOCKER_HOST — not usermod.
Files changed
.claude/memory/reference_wsl2_docker_context_npipe.md — new memory (root cause, evidence, fix, recurrence)
.claude/memory/MEMORY.md — index line under Reference / environment
No project/source code touched.
Did it reproduce before the fix?
Yes, deterministically. docker ps -a → Failed to initialize: protocol not available. After docker context use default, the same command returned the container table with no error. I also proved the daemon itself was healthy the whole time: DOCKER_HOST=unix:///var/run/docker.sock docker version → Server 29.1.3.
Remaining risks
It can come back. If you launch Docker Desktop on Windows, it may rewrite currentContext back to desktop-linux in your WSL config. Same one-line fix. Since you chose WSL2 native precisely because it's lighter, default is the correct context for this project — permanently.
docker ps -a shows zero containers — your stack simply isn't up yet. That's separate from this bug; per your rules I did not start anything. When you want it: docker-compose up -d from /mnt/c/Users/HP/.claude/projects/e-commerce-microservice.
Not verified: nothing else was tested. No Maven/test run happened in this session, so the state of mvn verify -pl order-service,product-service (still open per project memory) is unchanged and unverified.