Skip to content

6. Clean up and troubleshooting

Stop the API and Vite with Ctrl+C in their terminal tabs. Stop the stack, keeping its data:

Terminal window
cd ~/Desktop/tiny-shop/stack
Terminal window
docker compose down

or delete its data too:

Terminal window
docker compose down -v

docker compose ps -a lists no containers. After down, the next docker compose up -d starts with your sessions and traces still there; after down -v it starts empty. Your tiny-shop/ folder stays as it is: run npm start and npm run dev again to pick up where you left off.

You see Cause and fix
Bind for 0.0.0.0:4318 failed: port is already allocated another stack has the port: step 4c, move this one with stack/.env
denied when pulling ghcr.io/ouo11y/... not logged in to ghcr.io, or no read access yet: step 4b
Vite: @ouo/browser ... could not be resolved the package is @ouo11y/browser
Cannot read properties of undefined (reading 'export') in the API OpenTelemetry 2.x code: new BatchSpanProcessor({ exporter }) from @opentelemetry/sdk-trace
The backend trace starts at POST /api/checkout, without the browser span propagateTo does not match the API URL (use the RegExp), or the page was not reloaded after editing rum.js
No OPTIONS before the API calls same as above: no trace headers are being added
CORS error on /v1/traces or /v1/replay/chunks in the console the page is not on localhost / 127.0.0.1 (the collector’s allowed origins), or the replay URL is wrong after moving ports (VITE_OUO_REPLAY_ENDPOINT)
401 from the collector the Authorization header is missing or wrong
Nothing in Tempo yet wait up to a minute: new traces reach search later than trace-by-id

Still stuck? Compare your folders with the finished ones:

⬇ Download the finished files (tiny-shop.zip)

If 5001 is taken, start the API with PORT=5002 npm start and put VITE_API_URL=http://localhost:5002 in frontend/.env.local; rum.js builds propagateTo from it. The web app must stay on a localhost or 127.0.0.1 origin, the only ones the quickstart collector allows (CORS).