[main-red] molecule-ai/molecule-core: 74ba88ff27 #1594

Closed
opened 2026-05-20 08:06:18 +00:00 by gitea-actions · 2 comments

Main is RED on molecule-ai/molecule-core at 74ba88ff27

Commit: https://git.moleculesai.app/molecule-ai/molecule-core/commit/74ba88ff27026d009e8c5668a281d027af58f12e

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

  • publish-workspace-server-image / build-and-push (push)failurelogs
    • Failing after 50s
  • Handlers Postgres Integration / Handlers Postgres Integration (push)failurelogs
    • Failing after 1m0s

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": "E2E Staging Canvas (Playwright) / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "E2E Chat / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Lint curl status-code capture / Scan workflows for curl status-capture pollution (push)",
      "state": "success"
    },
    {
      "context": "Lint no tenant GITEA or GITHUB token write / Scan for repo-host token write into tenant workspace surface (push)",
      "state": "success"
    },
    {
      "context": "lint-required-workflows-docker-host-pinned / Lint docker-host pin on docker-touching workflows (push)",
      "state": "success"
    },
    {
      "context": "E2E API Smoke Test / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "CI / Shellcheck (E2E scripts) (push)",
      "state": "success"
    },
    {
      "context": "Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (push)",
      "state": "success"
    },
    {
      "context": "Secret scan / Scan diff for credential-shaped strings (push)",
      "state": "success"
    },
    {
      "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)",
      "state": "success"
    },
    {
      "context": "E2E Chat / E2E Chat (push)",
      "state": "success"
    },
    {
      "context": "Runtime PR-Built Compatibility / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "E2E API Smoke Test / E2E API Smoke Test (push)",
      "state": "success"
    },
    {
      "context": "publish-workspace-server-image / build-and-push (push)",
      "state": "failure"
    },
    {
      "context": "publish-workspace-server-image / Production auto-deploy (push)",
      "state": "success"
    },
    {
      "context": "lint-continue-on-error-tracking / lint-continue-on-error-tracking (push)",
      "state": "success"
    },
    {
      "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)",
      "state": "failure"
    },
    {
      "context": "Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push)",
      "state": "success"
    },
    {
      "context": "Runtime PR-Built Compatibility / PR-built wheel + import smoke (push)",
      "state": "success"
    },
    {
      "context": "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)",
      "state": "pending"
    },
    {
      "context": "Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push)",
      "state": "success"
    },
    {
      "context": "CI / Platform (Go) (push)",
      "state": "success"
    },
    {
      "context": "Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)",
      "state": "pending"
    },
    {
      "context": "CI / Canvas Deploy Reminder (push)",
      "state": "success"
    },
    {
      "context": "CI / Canvas (Next.js) (push)",
      "state": "success"
    },
    {
      "context": "CI / Python Lint & Test (push)",
      "state": "success"
    },
    {
      "context": "CI / all-required (push)",
      "state": "success"
    },
    {
      "context": "status-reaper / reap (push)",
      "state": "pending"
    },
    {
      "context": "main-red-watchdog / watchdog (push)",
      "state": "pending"
    },
    {
      "context": "gitea-merge-queue / queue (push)",
      "state": "success"
    }
  ],
  "branch": "main",
  "combined_state": "failure",
  "failed_contexts": [
    "publish-workspace-server-image / build-and-push (push)",
    "Handlers Postgres Integration / Handlers Postgres Integration (push)"
  ],
  "sha": "74ba88ff27026d009e8c5668a281d027af58f12e"
}

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 `74ba88ff27` Commit: <https://git.moleculesai.app/molecule-ai/molecule-core/commit/74ba88ff27026d009e8c5668a281d027af58f12e> 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 - **publish-workspace-server-image / build-and-push (push)** — `failure` → [logs](/molecule-ai/molecule-core/actions/runs/74856/jobs/0) - Failing after 50s - **Handlers Postgres Integration / Handlers Postgres Integration (push)** — `failure` → [logs](/molecule-ai/molecule-core/actions/runs/74848/jobs/1) - Failing after 1m0s ## 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": "E2E Staging Canvas (Playwright) / detect-changes (push)", "state": "success" }, { "context": "E2E Chat / detect-changes (push)", "state": "success" }, { "context": "Lint curl status-code capture / Scan workflows for curl status-capture pollution (push)", "state": "success" }, { "context": "Lint no tenant GITEA or GITHUB token write / Scan for repo-host token write into tenant workspace surface (push)", "state": "success" }, { "context": "lint-required-workflows-docker-host-pinned / Lint docker-host pin on docker-touching workflows (push)", "state": "success" }, { "context": "E2E API Smoke Test / detect-changes (push)", "state": "success" }, { "context": "CI / Shellcheck (E2E scripts) (push)", "state": "success" }, { "context": "Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (push)", "state": "success" }, { "context": "Secret scan / Scan diff for credential-shaped strings (push)", "state": "success" }, { "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)", "state": "success" }, { "context": "E2E Chat / E2E Chat (push)", "state": "success" }, { "context": "Runtime PR-Built Compatibility / detect-changes (push)", "state": "success" }, { "context": "E2E API Smoke Test / E2E API Smoke Test (push)", "state": "success" }, { "context": "publish-workspace-server-image / build-and-push (push)", "state": "failure" }, { "context": "publish-workspace-server-image / Production auto-deploy (push)", "state": "success" }, { "context": "lint-continue-on-error-tracking / lint-continue-on-error-tracking (push)", "state": "success" }, { "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)", "state": "failure" }, { "context": "Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push)", "state": "success" }, { "context": "Runtime PR-Built Compatibility / PR-built wheel + import smoke (push)", "state": "success" }, { "context": "Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push)", "state": "pending" }, { "context": "Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push)", "state": "success" }, { "context": "CI / Platform (Go) (push)", "state": "success" }, { "context": "Continuous synthetic E2E (staging) / Synthetic E2E against staging (push)", "state": "pending" }, { "context": "CI / Canvas Deploy Reminder (push)", "state": "success" }, { "context": "CI / Canvas (Next.js) (push)", "state": "success" }, { "context": "CI / Python Lint & Test (push)", "state": "success" }, { "context": "CI / all-required (push)", "state": "success" }, { "context": "status-reaper / reap (push)", "state": "pending" }, { "context": "main-red-watchdog / watchdog (push)", "state": "pending" }, { "context": "gitea-merge-queue / queue (push)", "state": "success" } ], "branch": "main", "combined_state": "failure", "failed_contexts": [ "publish-workspace-server-image / build-and-push (push)", "Handlers Postgres Integration / Handlers Postgres Integration (push)" ], "sha": "74ba88ff27026d009e8c5668a281d027af58f12e" } ``` _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-20 08:06:19 +00:00
Member

RCA — root cause

#1594 is most likely a shared Docker-runner substrate failure, not a product regression from commit 74ba88ff. The merged change was PR #1593, a workflow-name rename, while the only red contexts were the two lanes that immediately depend on runner Docker: publish image build and handlers Postgres integration.

Evidence

  • Commit 74ba88ff is fix(ci): drop slash from lint-no-tenant-gitea-token name (#1593), with no workspace-server product logic change.
  • Issue debug shows broad CI green; only publish-workspace-server-image / build-and-push failed after 50s and Handlers Postgres Integration failed after 1m0s.
  • .gitea/workflows/publish-workspace-server-image.yml:75-83 routes build-and-push to the dedicated publish runner pool; :88-106 fails fast if Docker daemon/socket access is broken.
  • .gitea/workflows/handlers-postgres-integration.yml:115-123 routes the integration job to docker-host; :148-186 starts a sibling Postgres container on molecule-core-net and fails if the bridge/container IP path is unavailable.
  • .gitea/workflows/handlers-postgres-integration.yml:28-59 documents the host-network/bridge-net runner hazard this workflow is designed around.

Suggested fix

Route to CI runner/Docker-host hygiene. Pull raw logs for runs 74856 and 74848 to classify the exact substrate fault: publish daemon/socket access, Buildx/DOCKER_CONFIG, missing molecule-core-net, or sibling-container startup/IP lookup. Do not roll back PR #1593; it was a CI grammar fix and does not explain Docker-dependent job failures.

Confidence

Medium — the affected jobs and commit scope strongly point to runner substrate, but raw logs are needed to name the exact Docker failure mode.

## RCA — root cause `#1594` is most likely a shared Docker-runner substrate failure, not a product regression from commit `74ba88ff`. The merged change was PR `#1593`, a workflow-name rename, while the only red contexts were the two lanes that immediately depend on runner Docker: publish image build and handlers Postgres integration. ## Evidence - Commit `74ba88ff` is `fix(ci): drop slash from lint-no-tenant-gitea-token name (#1593)`, with no workspace-server product logic change. - Issue debug shows broad CI green; only `publish-workspace-server-image / build-and-push` failed after 50s and `Handlers Postgres Integration` failed after 1m0s. - `.gitea/workflows/publish-workspace-server-image.yml:75-83` routes build-and-push to the dedicated `publish` runner pool; `:88-106` fails fast if Docker daemon/socket access is broken. - `.gitea/workflows/handlers-postgres-integration.yml:115-123` routes the integration job to `docker-host`; `:148-186` starts a sibling Postgres container on `molecule-core-net` and fails if the bridge/container IP path is unavailable. - `.gitea/workflows/handlers-postgres-integration.yml:28-59` documents the host-network/bridge-net runner hazard this workflow is designed around. ## Suggested fix Route to CI runner/Docker-host hygiene. Pull raw logs for runs `74856` and `74848` to classify the exact substrate fault: publish daemon/socket access, Buildx/DOCKER_CONFIG, missing `molecule-core-net`, or sibling-container startup/IP lookup. Do not roll back PR `#1593`; it was a CI grammar fix and does not explain Docker-dependent job failures. ## Confidence Medium — the affected jobs and commit scope strongly point to runner substrate, but raw logs are needed to name the exact Docker failure mode.

main returned to green at SHA ca9fe8dbfca459f4b4a61f55dcd21fecae6c1b73 (https://git.moleculesai.app/molecule-ai/molecule-core/commit/ca9fe8dbfca459f4b4a61f55dcd21fecae6c1b73). Closing automatically. If the underlying root cause is not yet understood, reopen this issue and file a postmortem — green-by-flake is still a bug per feedback_no_such_thing_as_flakes.

`main` returned to green at SHA `ca9fe8dbfca459f4b4a61f55dcd21fecae6c1b73` (<https://git.moleculesai.app/molecule-ai/molecule-core/commit/ca9fe8dbfca459f4b4a61f55dcd21fecae6c1b73>). Closing automatically. If the underlying root cause is not yet understood, reopen this issue and file a postmortem — green-by-flake is still a bug per `feedback_no_such_thing_as_flakes`.
gitea-actions bot closed this issue 2026-05-26 16:06:00 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#1594