[main-red] molecule-ai/molecule-core: 0006aa168a #565

Closed
opened 2026-05-11 21:07:13 +00:00 by gitea-actions · 1 comment

Main is RED on molecule-ai/molecule-core at 0006aa168a

Commit: https://git.moleculesai.app/molecule-ai/molecule-core/commit/0006aa168a127ebed79eb32c8058ddb2f222139c

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

(Combined state reported failure/error but no per-context entries were in a red state. This usually means a CI emitter set combined-status directly without a per-context status. Check the most recent workflow run for main and trace from there.)

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": null
    },
    {
      "context": "Secret scan / Scan diff for credential-shaped strings (push)",
      "state": null
    },
    {
      "context": "CI / Detect changes (push)",
      "state": null
    },
    {
      "context": "E2E Staging Canvas (Playwright) / detect-changes (push)",
      "state": null
    },
    {
      "context": "E2E API Smoke Test / detect-changes (push)",
      "state": null
    },
    {
      "context": "Handlers Postgres Integration / detect-changes (push)",
      "state": null
    },
    {
      "context": "Runtime PR-Built Compatibility / detect-changes (push)",
      "state": null
    },
    {
      "context": "CI / Platform (Go) (push)",
      "state": null
    },
    {
      "context": "CI / Python Lint & Test (push)",
      "state": null
    },
    {
      "context": "CI / Shellcheck (E2E scripts) (push)",
      "state": null
    },
    {
      "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)",
      "state": null
    },
    {
      "context": "CI / Canvas (Next.js) (push)",
      "state": null
    },
    {
      "context": "E2E API Smoke Test / E2E API Smoke Test (push)",
      "state": null
    },
    {
      "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)",
      "state": null
    },
    {
      "context": "Runtime PR-Built Compatibility / PR-built wheel + import smoke (push)",
      "state": null
    },
    {
      "context": "Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push)",
      "state": null
    },
    {
      "context": "CI / Canvas Deploy Reminder (push)",
      "state": null
    },
    {
      "context": "CI / all-required (push)",
      "state": null
    },
    {
      "context": "Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)",
      "state": null
    },
    {
      "context": "main-red-watchdog / watchdog (push)",
      "state": null
    },
    {
      "context": "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)",
      "state": null
    }
  ],
  "branch": "main",
  "combined_state": "failure",
  "failed_contexts": [],
  "sha": "0006aa168a127ebed79eb32c8058ddb2f222139c"
}

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 `0006aa168a` Commit: <https://git.moleculesai.app/molecule-ai/molecule-core/commit/0006aa168a127ebed79eb32c8058ddb2f222139c> 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 _(Combined state reported `failure`/`error` but no per-context entries were in a red state. This usually means a CI emitter set combined-status directly without a per-context status. Check the most recent workflow run for `main` and trace from there.)_ ## 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": null }, { "context": "Secret scan / Scan diff for credential-shaped strings (push)", "state": null }, { "context": "CI / Detect changes (push)", "state": null }, { "context": "E2E Staging Canvas (Playwright) / detect-changes (push)", "state": null }, { "context": "E2E API Smoke Test / detect-changes (push)", "state": null }, { "context": "Handlers Postgres Integration / detect-changes (push)", "state": null }, { "context": "Runtime PR-Built Compatibility / detect-changes (push)", "state": null }, { "context": "CI / Platform (Go) (push)", "state": null }, { "context": "CI / Python Lint & Test (push)", "state": null }, { "context": "CI / Shellcheck (E2E scripts) (push)", "state": null }, { "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)", "state": null }, { "context": "CI / Canvas (Next.js) (push)", "state": null }, { "context": "E2E API Smoke Test / E2E API Smoke Test (push)", "state": null }, { "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)", "state": null }, { "context": "Runtime PR-Built Compatibility / PR-built wheel + import smoke (push)", "state": null }, { "context": "Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push)", "state": null }, { "context": "CI / Canvas Deploy Reminder (push)", "state": null }, { "context": "CI / all-required (push)", "state": null }, { "context": "Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)", "state": null }, { "context": "main-red-watchdog / watchdog (push)", "state": null }, { "context": "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)", "state": null } ], "branch": "main", "combined_state": "failure", "failed_contexts": [], "sha": "0006aa168a127ebed79eb32c8058ddb2f222139c" } ``` _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-11 21:07:19 +00:00
Owner

Closing — #504-class operational noise, not a code regression (main's code-CI is fully green)

0006aa168a12 (the #552 bats-tests merge) — the per-context statuses on that SHA:

  • All code/required checks GREEN: CI / Platform (Go) ✓, CI / Python Lint & Test ✓, CI / Canvas (Next.js) ✓, CI / all-required ✓, CI / Shellcheck ✓, all the E2E detect-changes + the real E2E jobs (E2E API Smoke Test, Handlers Postgres Integration, E2E Staging Canvas (Playwright), Runtime PR-Built Compatibility) ✓, Secret scan ✓, Block forbidden paths ✓, Sweep stale e2e-* orgs ✓.
  • Only two reds — both operational/staging-canary, fire on push, gate nothing: Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push): failure and Continuous synthetic E2E (staging) / Synthetic E2E against staging (push): failure. (The "every 30 min" one is literally a schedule: workflow that also has a push: trigger and posts a commit-status — that's the #504 root.) The staging-canary failure has its own tracking issue, #424.

So combined=failure here is failure(Staging SaaS smoke) + failure(Continuous synthetic E2E), neither in branch_protections.status_check_contexts, neither blocking any PR. The watchdog's "no per-context entries were in a red state" line is itself slightly wrong this time (there are two red contexts) — its detection seems to only enumerate required contexts.

Structural fix = #504: scope Staging SaaS smoke + Continuous synthetic E2E (staging) (and the other schedule:/janitor workflows) so they don't report a commit-status on push to main — e.g. if: github.event_name == 'schedule' on the status-posting step, or drop the push: trigger. Plus the watchdog (main-red-watchdog.yml, RFC #420 Option C) should suppress-not-file when combined=failure but no required/code context is red. Same conclusion as on #561 — closing this as a duplicate of #561 (live tracking thread) + #424 (the staging-canary itself). Not reverting anything (feedback_fix_root_not_symptom).

— hongming-pc2

## Closing — #504-class operational noise, not a code regression (main's code-CI is fully green) `0006aa168a12` (the #552 bats-tests merge) — the per-context statuses on that SHA: - **All code/required checks GREEN**: `CI / Platform (Go)` ✓, `CI / Python Lint & Test` ✓, `CI / Canvas (Next.js)` ✓, `CI / all-required` ✓, `CI / Shellcheck` ✓, all the E2E `detect-changes` + the real E2E jobs (`E2E API Smoke Test`, `Handlers Postgres Integration`, `E2E Staging Canvas (Playwright)`, `Runtime PR-Built Compatibility`) ✓, `Secret scan` ✓, `Block forbidden paths` ✓, `Sweep stale e2e-* orgs` ✓. - **Only two reds — both operational/staging-canary, fire on `push`, gate nothing**: `Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push): failure` and `Continuous synthetic E2E (staging) / Synthetic E2E against staging (push): failure`. (The "every 30 min" one is literally a `schedule:` workflow that *also* has a `push:` trigger and posts a commit-status — that's the #504 root.) The staging-canary failure has its own tracking issue, **#424**. So `combined=failure` here is `failure(Staging SaaS smoke) + failure(Continuous synthetic E2E)`, neither in `branch_protections.status_check_contexts`, neither blocking any PR. The watchdog's "no per-context entries were in a red state" line is itself slightly wrong this time (there *are* two red contexts) — its detection seems to only enumerate *required* contexts. **Structural fix** = #504: scope `Staging SaaS smoke` + `Continuous synthetic E2E (staging)` (and the other `schedule:`/janitor workflows) so they don't report a commit-status on `push` to `main` — e.g. `if: github.event_name == 'schedule'` on the status-posting step, or drop the `push:` trigger. **Plus** the watchdog (`main-red-watchdog.yml`, RFC #420 Option C) should *suppress*-not-file when `combined=failure` but no *required/code* context is red. Same conclusion as on #561 — closing this as a duplicate of #561 (live tracking thread) + #424 (the staging-canary itself). Not reverting anything (`feedback_fix_root_not_symptom`). — 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#565