Dokploy/dokploy · warning · Error

No monitoring data available for "${input.appName}". This co

Error message

No monitoring data available for "${input.appName}". This could be because:

1. The container was recently started - wait a few minutes for data to be collected
2. The container is not running - verify its status
3. The service is not included in your monitoring configuration

What it means

Thrown by Dokploy's monitoring query when the monitoring service responds 200 but the JSON body is not a non-empty array — i.e. no time-series data points exist for the requested app. Common after cold starts or when the service is excluded from scraping; the message enumerates the likely causes.

Source

Thrown at apps/dokploy/server/api/routers/user.ts:561

					);
				}
				const url = new URL(`${input.url}/metrics/containers`);
				url.searchParams.append("limit", input.dataPoints);
				url.searchParams.append("appName", input.appName);
				const response = await fetch(url.toString(), {
					headers: {
						Authorization: `Bearer ${input.token}`,
					},
				});
				if (!response.ok) {
					throw new Error(
						`Error ${response.status}: ${response.statusText}. Please verify that the application "${input.appName}" is running and this service is included in the monitoring configuration.`,
					);
				}

				const data = await response.json();
				if (!Array.isArray(data) || data.length === 0) {
					throw new Error(
						[
							`No monitoring data available for "${input.appName}". This could be because:`,
							"",
							"1. The container was recently started - wait a few minutes for data to be collected",
							"2. The container is not running - verify its status",
							"3. The service is not included in your monitoring configuration",
						].join("\n"),
					);
				}
				return data as {
					containerId: string;
					containerName: string;
					containerImage: string;
					containerLabels: string;
					containerCommand: string;
					containerCreated: string;
				}[];
			} catch (error) {

View on GitHub (pinned to 546686ea35)

Solutions

  1. Wait a few minutes for scrape intervals to collect data, then retry
  2. Confirm the container is running and has been up across at least one scrape interval
  3. Verify the appName exactly matches the monitored service name/label
  4. Check the monitoring service's own targets page to confirm the service is being scraped
Defensive patterns

Strategy: retry

Validate before calling

// Optionally verify the app is running via Dokploy's app status query before fetching metrics

Type guard

const hasData = (d: unknown): d is unknown[] => Array.isArray(d) && d.length > 0;

Try / catch

catch (e) { if (/No monitoring data available/.test(e.message)) scheduleRetry(60_000); else throw e; }

Prevention

When it happens

Trigger: Calling the monitoring data-points query for a container that started moments ago (no scrapes yet), a container that is not running, or a service name not present in the monitoring configuration's targets.

Common situations: Opening the monitoring dashboard immediately after deploying; querying a stopped/crashed container; typo'd or transformed appName that does not match the scrape job label; monitoring stack recently installed with no retention yet.

Related errors


AI-assisted analysis of Dokploy/dokploy@546686ea35 (2026-08-27). Data as JSON: /api/errors/94494b88980a1aca. Report an issue: GitHub.