[hermes] soteria #353: quality_toolchain_missing_node #24

Open
opened 2026-09-12 21:30:04 +00:00 by hermes-automation · 0 comments

Hermes auto-triage classified incident soteria/353 as quality_toolchain_missing_node (confidence 0.96); first failed gate: sonarqube.

Why a human is needed

Soteria build 353 first failed while enforcing its SonarQube quality gate. The scanner attempted TypeScript analysis and could not start Node.js: the console explicitly reports that node -v failed and that the node executable does not exist. Jenkins published no failed tests, and the image-build stage was skipped only after this earlier quality-gate failure. Restore Node.js in the quality-analysis container or correct its PATH/tool image, then rerun the build; only after analysis can run successfully can repository quality results be evaluated.

Ariadne did not authorize automated remediation: classification_not_supported: 'quality_toolchain_missing_node'.

Facts

  • jenkins — Jenkins build 353 for soteria ended with result FAILURE, and Jenkins reported its first failed stage as "Enforce quality gate". (build 353 metadata: result=FAILURE, first_failed_stage=Enforce quality gate)
  • jenkins — During SonarQube TypeScript analysis, the scanner reported that running "node -v" failed because Node.js was not available. (build 353 console_failures, line 290)
  • jenkins — The scanner's underlying exception states that it could not run program "node" because the executable was not found. (build 353 console_failures, line 391: java.io.IOException: Cannot run program "node": error=2, No such file or directory)
  • jenkins — No structured failed test results were published by Jenkins. (build 353 failed_tests=[])
  • jenkins — The later Build & push image stage was skipped because of an earlier failure. (build 353 console_tail)

Evidence

The earliest failure region of the build console:

tty: true
    volumeMounts:
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
  - command:
    - "cat"
    image: "registry.bstein.dev/bstein/quality-tools:sonar8.0.1-trivy0.70.0-db20260422-arm64"
    name: "quality-tools"
    tty: true
    volumeMounts:
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
  - env:
    - name: "JENKINS_SECRET"
      value: "********"
    - name: "JENKINS_TUNNEL"
      value: "jenkins.jenkins.svc.cluster.local:50000"
    - name: "JENKINS_AGENT_NAME"
      value: "soteria-353-ljqlc-sjwfg-5trs2"

Inferences

  • The first enforced failure is the SonarQube analysis gate, not a unit or integration test failure: Jenkins did not publish failed test results, and the pipeline stopped in the quality-gate stage before the image build.
  • The immediate cause is a quality-analysis execution environment that lacks the Node.js executable required by SonarQube's JavaScript/TypeScript analyzer. The Go parser errors preceding it may also reflect a damaged or incompatible analysis toolchain, but the missing Node executable is the cleares...
  • A service-source change is not indicated by this evidence. The fix should restore a compatible Node.js runtime in the image or container used for the Soteria SonarQube scan, then rerun analysis to determine whether any repository-level quality findings remain.

Suggested remediation (not available)

No automated remediation exists for this failure. Hermes proposes one; it was not performed, and Ariadne cannot perform it until a person builds and deploys it.

  • Proposed action: restore_quality_analysis_node_runtime
  • What it would do: Update or rebuild the Jenkins quality-tools execution environment so the SonarQube analysis container includes an executable, supported Node.js runtime available on PATH. Re-run the same revision after the toolchain is corrected.
  • Evidence that should be required first: The failing build evidence must show the quality gate failed during SonarQube JavaScript or TypeScript analysis with "Cannot run program "node"" or an equivalent missing-Node executable error.
  • Failed build: https://ci.bstein.dev/job/soteria/353/
  • Full evidence bundle and audit trail live in Ariadne at /api/admin/audit/events, event types hermes_autotriage_incident and hermes_autotriage_diagnosis.

Filed automatically by Ariadne from a Hermes Agent diagnosis (run run_d4bb8ce052d0455cbeebce29c2181c1f). Hermes has no write access to this repository; no files or infrastructure were changed.

Hermes auto-triage classified incident `soteria/353` as **quality_toolchain_missing_node** (confidence 0.96); first failed gate: `sonarqube`. ## Why a human is needed Soteria build 353 first failed while enforcing its SonarQube quality gate. The scanner attempted TypeScript analysis and could not start Node.js: the console explicitly reports that `node -v` failed and that the `node` executable does not exist. Jenkins published no failed tests, and the image-build stage was skipped only after this earlier quality-gate failure. Restore Node.js in the quality-analysis container or correct its PATH/tool image, then rerun the build; only after analysis can run successfully can repository quality results be evaluated. Ariadne did not authorize automated remediation: `classification_not_supported: 'quality_toolchain_missing_node'`. ## Facts - **jenkins** — Jenkins build 353 for soteria ended with result FAILURE, and Jenkins reported its first failed stage as "Enforce quality gate". (`build 353 metadata: result=FAILURE, first_failed_stage=Enforce quality gate`) - **jenkins** — During SonarQube TypeScript analysis, the scanner reported that running "node -v" failed because Node.js was not available. (`build 353 console_failures, line 290`) - **jenkins** — The scanner's underlying exception states that it could not run program "node" because the executable was not found. (`build 353 console_failures, line 391: java.io.IOException: Cannot run program "node": error=2, No such file or directory`) - **jenkins** — No structured failed test results were published by Jenkins. (`build 353 failed_tests=[]`) - **jenkins** — The later Build & push image stage was skipped because of an earlier failure. (`build 353 console_tail`) ## Evidence The earliest failure region of the build console: ``` tty: true volumeMounts: - mountPath: "/home/jenkins/agent" name: "workspace-volume" - command: - "cat" image: "registry.bstein.dev/bstein/quality-tools:sonar8.0.1-trivy0.70.0-db20260422-arm64" name: "quality-tools" tty: true volumeMounts: - mountPath: "/home/jenkins/agent" name: "workspace-volume" - env: - name: "JENKINS_SECRET" value: "********" - name: "JENKINS_TUNNEL" value: "jenkins.jenkins.svc.cluster.local:50000" - name: "JENKINS_AGENT_NAME" value: "soteria-353-ljqlc-sjwfg-5trs2" ``` ## Inferences - The first enforced failure is the SonarQube analysis gate, not a unit or integration test failure: Jenkins did not publish failed test results, and the pipeline stopped in the quality-gate stage before the image build. - The immediate cause is a quality-analysis execution environment that lacks the Node.js executable required by SonarQube's JavaScript/TypeScript analyzer. The Go parser errors preceding it may also reflect a damaged or incompatible analysis toolchain, but the missing Node executable is the cleares... - A service-source change is not indicated by this evidence. The fix should restore a compatible Node.js runtime in the image or container used for the Soteria SonarQube scan, then rerun analysis to determine whether any repository-level quality findings remain. ## Suggested remediation (not available) No automated remediation exists for this failure. Hermes proposes one; it was not performed, and Ariadne cannot perform it until a person builds and deploys it. - Proposed action: `restore_quality_analysis_node_runtime` - What it would do: Update or rebuild the Jenkins quality-tools execution environment so the SonarQube analysis container includes an executable, supported Node.js runtime available on PATH. Re-run the same revision after the toolchain is corrected. - Evidence that should be required first: The failing build evidence must show the quality gate failed during SonarQube JavaScript or TypeScript analysis with "Cannot run program \"node\"" or an equivalent missing-Node executable error. ## Links - Failed build: https://ci.bstein.dev/job/soteria/353/ - Full evidence bundle and audit trail live in Ariadne at `/api/admin/audit/events`, event types `hermes_autotriage_incident` and `hermes_autotriage_diagnosis`. Filed automatically by Ariadne from a Hermes Agent diagnosis (run [run_d4bb8ce052d0455cbeebce29c2181c1f](https://triage.bstein.dev/chat?resume=run_d4bb8ce052d0455cbeebce29c2181c1f)). Hermes has no write access to this repository; no files or infrastructure were changed. <!-- hermes-triage job=soteria classification=quality_toolchain_missing_node incident=soteria/353 -->
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: titan/soteria#24
No description provided.