Dashboard

Logs

Runtime logs

Watch your app's output live, search and filter it, and download it.

Runtime logs are what your app writes to standard output and standard error while it runs. Open them from the project's Logs tab. Output from the build is separate; see Build logs.

What the page shows

The page opens with the latest 100 lines and then switches to live updates. While Live enabled is on, it fetches the latest 200 lines every 3 seconds and shows them in place of what was there. The page holds at most 500 lines. Click Live enabled to pause updates (the button then reads Paused), and click it again to resume.

Lines are sorted newest first by their timestamp, shown in your browser's time zone. The page reads JSON log lines and shows their level and message, so a structured logger such as pino gets INFO, WARN and ERROR labels and its request lines appear as GET /path → 200.

The status next to the button says "Connected", "Connecting…" or "Connection error. Pause and resume to reconnect." After a dropped connection the page tries again after 5 seconds.

Search and filter

  • Search logs… keeps the lines that contain your text, ignoring case.
  • All, Info, Warnings and Errors filter by level. They work on JSON lines with a level field (text levels or pino's numbers); Warnings also matches any line containing the word "warning". Plain-text lines without a level only show under All.
  • Clear filters appears when nothing matches.

Clear view empties the page without deleting anything. The next update fills it again.

Download

Download logs saves the lines currently loaded on the page, all of them and not only the filtered ones, as a text file named after the project and the time, such as my-shop-logs-2026-10-08-0831.txt.

Before the app has started

While a new project's first deploy is still running, the page says "Your app is still deploying. Runtime logs will appear here once the first instance starts." and fills in once the app is up.

If your app keeps stopping soon after it starts, the project page shows "This app is failing to start and may be crash-looping." and the Logs tab gets a marker. The last lines before each stop are usually where the error is. See App won't start.

Hints from the logs

When the latest lines match a problem HCode recognises, the page lists up to three hints above the logs under "The logs suggest:", or "Your app keeps restarting. The logs suggest:" while the app is crash-looping. For example, "Port already in use. Ensure the app listens on the expected port." appears when the logs mention EADDRINUSE, and "Missing module. Check build output and dependencies." when a module can't be found. Logs that match nothing show no hints.