Skip to content

Troubleshooting

Error: listen tcp :8080: bind: address already in use

Use a different port via flag or environment variable:

Terminal window
./myworkshop serve --port 9090
# or
PORT=9090 ./myworkshop serve

If a previous server process crashed without cleaning up, ~/.worky/server.pid may still exist:

Terminal window
worky stop # attempts a clean shutdown
# or remove manually
rm ~/.worky/server.pid

✗ file "done.txt" does not exist

Verify the path is relative to the working directory where the workshop binary runs, not the binary location.

✗ environment variable KUBECONFIG is not set

The variable must be set in the same shell session that runs ./myworkshop check. Variables exported in another terminal are not visible.

✗ command "kubectl" not found

The command must be on PATH in the current shell. Verify with:

Terminal window
which kubectl
✗ dial tcp localhost:8080: connect: connection refused

The service is not yet running on that port. Start the service before running check, or add Retries and RetryDelay to the check so worky waits for it.

✗ timed out after 5s

The check’s Timeout duration was exceeded. Either increase Timeout in the check definition or investigate why the external process is slow to respond.

no checks defined for chapter 02-deploy

The chapter struct has an empty or nil Checks slice. Add at least one worky.Check entry to the chapter, or remove the chapter if it is informational only.


Run ./myworkshop status to see which chapters are complete and which are unlocked. If a chapter that should be unlocked appears locked, check that the preceding chapter’s checks all pass:

Terminal window
./myworkshop check 01-setup
unknown chapter: deploy

The ID passed to check or status must match exactly the ID field in Config.Chapters. Use the full ID as defined (e.g. 01-setup, not setup).

If ~/.worky/progress.json is corrupted (e.g. truncated after a crash), worky will fail to load state. Reset progress to start fresh:

Terminal window
./myworkshop reset

Or delete the file manually:

Terminal window
rm ~/.worky/progress.json

Terminal window
./myworkshop logs

Logs are written to ~/.worky/server.log when the server is started with --detach.

Terminal window
./myworkshop stop

If stop fails or the process is unresponsive:

Terminal window
kill $(cat ~/.worky/server.pid)
rm ~/.worky/server.pid

  • Built-in checks — full list of built-in check functions and their error messages
  • Patterns — timeout, retry, and custom check patterns