louislam/uptime-kuma · error · Error
Unknown Monitor Type
Error message
Unknown Monitor Type
What it means
The terminal else of the beat-loop type switch. When monitor.type matches none of the built-in types and is absent from monitorTypeList, the monitor cannot execute and throws.
Source
Thrown at server/model/monitor.js:902
let startTime = dayjs().valueOf();
bean.msg = await kafkaProducerAsync(
JSON.parse(this.kafkaProducerBrokers),
this.kafkaProducerTopic,
this.kafkaProducerMessage,
{
allowAutoTopicCreation: this.kafkaProducerAllowAutoTopicCreation,
ssl: this.kafkaProducerSsl,
clientId: `Uptime-Kuma/${version}`,
interval: this.interval,
connectionTimeout: this.timeout,
},
JSON.parse(this.kafkaProducerSaslOptions)
);
bean.status = UP;
bean.ping = dayjs().valueOf() - startTime;
} else {
throw new Error("Unknown Monitor Type");
}
if (this.isUpsideDown()) {
bean.status = flipStatus(bean.status);
if (bean.status === DOWN) {
throw new Error("Flip UP to DOWN");
}
}
retries = 0;
} catch (error) {
if (error?.name === "CanceledError") {
bean.msg = `timeout by AbortSignal (${this.timeout}s)`;
} else {
bean.msg = error.message;
}
View on GitHub (pinned to 6b5ea01557)
Solutions
- Confirm the monitor type is supported by your installed Uptime Kuma version
- If the type comes from a plugin, ensure the plugin is enabled and loaded
- Correct the type via the UI, or recreate the monitor; fix the DB row if it was hand-edited
Defensive patterns
Strategy: validation
Validate before calling
const known = new Set(["http","keyword","json-query","push","ping","docker","kafka-producer", ...Object.keys(UptimeKumaServer.monitorTypeList)]);
if (!known.has(monitor.type)) throw new Error(`Unsupported monitor type: ${monitor.type}`); Type guard
function isKnownMonitorType(type) {
return [
"http","keyword","json-query","push","ping","docker","kafka-producer"
].includes(type) || type in UptimeKumaServer.monitorTypeList;
} Prevention
- Do not hand-edit the monitor type column
- When downgrading Uptime Kuma, back up and remove monitors of unsupported types first
When it happens
Trigger: A monitor row whose type column is null, empty, or an unrecognized string.
Common situations: DB row edited manually; monitor created by a newer Uptime Kuma version then opened in an older one; a plugin monitor type whose plugin failed to load.
Related errors
- Invalid db-config.json, type must be a string
- Unknown Database type: ${dbConfig.type}
- Failed to load docker host config
- Both ${envName} and ${envName}_FILE are set. Please use only
- Failed to read ${envName}_FILE at ${fileValue}: ${err.messag
AI-assisted analysis of louislam/uptime-kuma@6b5ea01557 (2026-08-12).
Data as JSON: /api/errors/6c146107381f5d6d.
Report an issue: GitHub.