[main-red] molecule-ai/molecule-core: 49355cf971 #655

Closed
opened 2026-05-12 04:05:56 +00:00 by gitea-actions · 1 comment

Main is RED on molecule-ai/molecule-core at 49355cf971

Commit: https://git.moleculesai.app/molecule-ai/molecule-core/commit/49355cf971fdd373b49b391451a7131d70844b11

Auto-filed by .gitea/workflows/main-red-watchdog.yml (Option C of the main-never-red directive). Per feedback_no_such_thing_as_flakes + feedback_fix_root_not_symptom: investigate the root cause; do NOT revert as a reflex. The watchdog itself never reverts.

Failed status contexts

  • Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)failurelogs
    • Failing after 4m35s

Resolution path

  1. Read the failed logs (links above).
  2. If reproducible locally, fix forward in a PR targeting main.
  3. If the failure is a real flake — STOP. Per feedback_no_such_thing_as_flakes, intermittent failures are real bugs. Investigate to root cause; do not mark as flake.
  4. If the failure is blocking unrelated work for >1 hour, file a follow-up issue and assign someone. Do NOT revert without a human GO per feedback_prod_apply_needs_hongming_chat_go (branch protection is a prod surface).

Debug

{
  "all_contexts": [
    {
      "context": "Block internal-flavored paths / Block forbidden paths (push)",
      "state": "success"
    },
    {
      "context": "E2E API Smoke Test / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "CI / Detect changes (push)",
      "state": "success"
    },
    {
      "context": "E2E Staging Canvas (Playwright) / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Runtime PR-Built Compatibility / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Handlers Postgres Integration / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Secret scan / Scan diff for credential-shaped strings (push)",
      "state": "success"
    },
    {
      "context": "CI / Platform (Go) (push)",
      "state": "success"
    },
    {
      "context": "CI / Shellcheck (E2E scripts) (push)",
      "state": "success"
    },
    {
      "context": "CI / Canvas (Next.js) (push)",
      "state": "success"
    },
    {
      "context": "E2E API Smoke Test / E2E API Smoke Test (push)",
      "state": "success"
    },
    {
      "context": "CI / Python Lint & Test (push)",
      "state": "success"
    },
    {
      "context": "Runtime PR-Built Compatibility / PR-built wheel + import smoke (push)",
      "state": "success"
    },
    {
      "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)",
      "state": "success"
    },
    {
      "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)",
      "state": "success"
    },
    {
      "context": "CI / Canvas Deploy Reminder (push)",
      "state": "success"
    },
    {
      "context": "CI / all-required (push)",
      "state": "success"
    },
    {
      "context": "Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push)",
      "state": "success"
    },
    {
      "context": "Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)",
      "state": "pending"
    },
    {
      "context": "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)",
      "state": "failure"
    },
    {
      "context": "status-reaper / reap (push)",
      "state": "pending"
    },
    {
      "context": "main-red-watchdog / watchdog (push)",
      "state": "pending"
    }
  ],
  "branch": "main",
  "combined_state": "failure",
  "failed_contexts": [
    "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)"
  ],
  "sha": "49355cf971fdd373b49b391451a7131d70844b11"
}

This issue is idempotent: the watchdog runs hourly at :05 and edits this body in place. When main returns to green, the watchdog will close this issue automatically with a "main returned to green" comment.

# Main is RED on `molecule-ai/molecule-core` at `49355cf971` Commit: <https://git.moleculesai.app/molecule-ai/molecule-core/commit/49355cf971fdd373b49b391451a7131d70844b11> Auto-filed by `.gitea/workflows/main-red-watchdog.yml` (Option C of the [main-never-red directive](https://git.moleculesai.app/molecule-ai/molecule-core/issues/420)). Per `feedback_no_such_thing_as_flakes` + `feedback_fix_root_not_symptom`: investigate the root cause; do NOT revert as a reflex. The watchdog itself never reverts. ## Failed status contexts - **Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)** — `failure` → [logs](/molecule-ai/molecule-core/actions/runs/13318/jobs/0) - Failing after 4m35s ## Resolution path 1. Read the failed logs (links above). 2. If reproducible locally, fix forward in a PR targeting `main`. 3. If the failure is a real flake — STOP. Per `feedback_no_such_thing_as_flakes`, intermittent failures are real bugs. Investigate to root cause; do not mark as flake. 4. If the failure is blocking unrelated work for >1 hour, file a follow-up issue and assign someone. Do NOT revert without a human GO per `feedback_prod_apply_needs_hongming_chat_go` (branch protection is a prod surface). ## Debug ```json { "all_contexts": [ { "context": "Block internal-flavored paths / Block forbidden paths (push)", "state": "success" }, { "context": "E2E API Smoke Test / detect-changes (push)", "state": "success" }, { "context": "CI / Detect changes (push)", "state": "success" }, { "context": "E2E Staging Canvas (Playwright) / detect-changes (push)", "state": "success" }, { "context": "Runtime PR-Built Compatibility / detect-changes (push)", "state": "success" }, { "context": "Handlers Postgres Integration / detect-changes (push)", "state": "success" }, { "context": "Secret scan / Scan diff for credential-shaped strings (push)", "state": "success" }, { "context": "CI / Platform (Go) (push)", "state": "success" }, { "context": "CI / Shellcheck (E2E scripts) (push)", "state": "success" }, { "context": "CI / Canvas (Next.js) (push)", "state": "success" }, { "context": "E2E API Smoke Test / E2E API Smoke Test (push)", "state": "success" }, { "context": "CI / Python Lint & Test (push)", "state": "success" }, { "context": "Runtime PR-Built Compatibility / PR-built wheel + import smoke (push)", "state": "success" }, { "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)", "state": "success" }, { "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)", "state": "success" }, { "context": "CI / Canvas Deploy Reminder (push)", "state": "success" }, { "context": "CI / all-required (push)", "state": "success" }, { "context": "Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push)", "state": "success" }, { "context": "Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)", "state": "pending" }, { "context": "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)", "state": "failure" }, { "context": "status-reaper / reap (push)", "state": "pending" }, { "context": "main-red-watchdog / watchdog (push)", "state": "pending" } ], "branch": "main", "combined_state": "failure", "failed_contexts": [ "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)" ], "sha": "49355cf971fdd373b49b391451a7131d70844b11" } ``` _This issue is idempotent: the watchdog runs hourly at `:05` and edits this body in place. When `main` returns to green, the watchdog will close this issue automatically with a "main returned to green" comment._
gitea-actions bot added the tier:high label 2026-05-12 04:05:57 +00:00
Owner

Triaged — op-noise, not a code red. Closing as a dup of #561 (the umbrella for (push)-suffix schedule-workflow false-reds on main).

What happened: the watchdog ran at its :05 tick (04:05Z) and saw Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) = failure on HEAD 49355cf971 — but that's not a main-code defect. Staging SaaS smoke is a schedule-triggered workflow ((every 30 min)); Gitea 1.22.6 hardcodes the (push) suffix on the commit-status context for any default-branch run regardless of trigger event (the quirk #561/#420 are about), so its periodic failures (driven by staging-SaaS environment state, not by anything in this commit) show up as a (push)-suffixed red and turn main's combined status red.

Already resolved: the status-reaper (rev4 — PR #652, merged 03:52Z — the per-context statestatus key fix that finally made the compensation path reachable) has compensated it. Current status on 49355cf971:

Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)successCompensated by status-reaper (workflow has no push: trigger; Gitea 1.22.6 hardcoded-suffix bug …)

main's only remaining non-success context is Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) = pending (still running) — it'll either pass or, if it fails, get compensated on the next reaper tick (schedule-only workflow, same class). So the watchdog's own auto-close-on-green will fire on the next :05 tick regardless; I'm closing now to keep the [main-red] queue clean.

Side note (not blocking this issue): the rev4 fix also corrected the watchdog's per-entry-key bug — this issue's body now correctly lists failed_contexts + real per-context states in the Debug block (pre-rev4 it would have said "no per-context entries were in a red state" / state: None for everything). Good.

One thing worth a separate look (low priority, not for here): if Staging SaaS smoke (every 30 min) is failing persistently (every tick) rather than the occasional staging hiccup, that's a staging-SaaS-health concern that the reaper-compensation now masks on main's combined status — whoever owns staging-SaaS health should check the run logs (logs) and, if it's a real persistent failure, it should have its own alerting (a tracking issue / Loki alert) rather than relying on main being red. Not filing that now — could just be a transient staging blip — but flagging the pattern.

— hongming-pc2

Triaged — **op-noise, not a code red. Closing as a dup of #561** (the umbrella for `(push)`-suffix schedule-workflow false-reds on `main`). **What happened:** the watchdog ran at its `:05` tick (04:05Z) and saw `Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)` = `failure` on HEAD `49355cf971` — but that's not a `main`-code defect. `Staging SaaS smoke` is a **schedule-triggered** workflow (`(every 30 min)`); Gitea 1.22.6 hardcodes the ` (push)` suffix on the commit-status context for any default-branch run regardless of trigger event (the quirk #561/#420 are about), so its periodic failures (driven by staging-SaaS environment state, not by anything in this commit) show up as a `(push)`-suffixed red and turn `main`'s combined status red. **Already resolved:** the status-reaper (rev4 — PR #652, merged 03:52Z — the per-context `state`→`status` key fix that finally made the compensation path reachable) has compensated it. Current status on `49355cf971`: > `Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)` → **`success`** — `Compensated by status-reaper (workflow has no push: trigger; Gitea 1.22.6 hardcoded-suffix bug …)` `main`'s only remaining non-`success` context is `Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)` = `pending` (still running) — it'll either pass or, if it fails, get compensated on the next reaper tick (schedule-only workflow, same class). So the watchdog's own auto-close-on-green will fire on the next `:05` tick regardless; I'm closing now to keep the `[main-red]` queue clean. **Side note (not blocking this issue):** the rev4 fix also corrected the watchdog's per-entry-key bug — this issue's body now correctly lists `failed_contexts` + real per-context states in the Debug block (pre-rev4 it would have said "no per-context entries were in a red state" / `state: None` for everything). Good. **One thing worth a separate look (low priority, not for here):** if `Staging SaaS smoke (every 30 min)` is failing *persistently* (every tick) rather than the occasional staging hiccup, that's a staging-SaaS-health concern that the reaper-compensation now masks on `main`'s combined status — whoever owns staging-SaaS health should check the run logs ([logs](/molecule-ai/molecule-core/actions/runs/13318/jobs/0)) and, if it's a real persistent failure, it should have its own alerting (a tracking issue / Loki alert) rather than relying on `main` being red. Not filing that now — could just be a transient staging blip — but flagging the pattern. — hongming-pc2
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#655