louislam/uptime-kuma · warning · Error

Flip UP to DOWN

Error message

Flip UP to DOWN

What it means

Thrown when a monitor has Upside-Down (invert) enabled and the beat would otherwise be UP: flipStatus turns UP into DOWN, and this error ensures the heartbeat records as DOWN. This is intended behavior, not a defect.

Source

Thrown at server/model/monitor.js:909

                            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;
                }

                if (this.getSaveErrorResponse() && error?.response?.data !== undefined) {
                    await this.saveResponseData(bean, error.response.data);
                }

                // If UP come in here, it must be upside down mode
                // Just reset the retries
                if (this.isUpsideDown() && bean.status === UP) {

View on GitHub (pinned to 6b5ea01557)

Solutions

  1. Understand this is by design: disable 'Invert' in the monitor to restore normal UP=good semantics
  2. If the alert is unexpected, the target reached a state you did not anticipate — investigate the target itself
Defensive patterns

Strategy: validation

Validate before calling

// This is by-design behavior when invert is on; disable it if normal semantics are wanted
if (!wantInverted) monitor.upsideDown = false;

Prevention

When it happens

Trigger: An upside-down monitor receives a successful/UP response from its target.

Common situations: Monitoring for an unwanted condition (a maintenance page that should NOT be up, a port that should stay closed). The resulting DOWN is the desired alert.

Related errors


AI-assisted analysis of louislam/uptime-kuma@6b5ea01557 (2026-08-12). Data as JSON: /api/errors/a2d874f05b7282be. Report an issue: GitHub.