CCI report: a98d3e79-7d41-4f92-84a2-ef4e4910726e

Request message

{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
    "name": "heartwood",
    "description": "Radicle Heartwood Protocol & Stack",
    "private": false,
    "default_branch": "master",
    "delegates": [
      "did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
      "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
    ]
  },
  "action": "Created",
  "patch": {
    "id": "54ec199d6bc4a286e9193ef178c9676cbbfa8db7",
    "author": {
      "id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
      "alias": null
    },
    "title": "Don't abort on a stale connection attempt",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
    "after": "3b91a8165f701a93ff7992d50b5d1b3b5711ebd8",
    "commits": [
      "3b91a8165f701a93ff7992d50b5d1b3b5711ebd8"
    ],
    "target": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "54ec199d6bc4a286e9193ef178c9676cbbfa8db7",
        "author": {
          "id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
          "alias": null
        },
        "description": "`Session::to_attempted` asserted that the session was in the `Initial` state.\nThat assertion is not something the caller can guarantee.\n\nThis crash failure has been observed repeatedly in garden, always within a second\nof conflicting-connection resolution (\"Closing conflicting session with ...\"),\nwhich is what puts an inbound connection and an outbound attempt for the same\npeer in flight together.\n\nResolving a connection conflict is a routine network event and must not be able\nto terminate the node. Make the transition checked: `to_attempted` now reports\nwhether it applied, and `Service::attempted` returns that, warning with the\nsession's actual state instead of aborting. The unknown-session branch keeps its\ndebug-build assertion and warns in release.\n\nHere is my understanding on why this happens:\n\n`Service::connect` inserts an `Initial` session and queues `Io::Connect` on the\noutbox. The outbox is only drained later, in `Wire::next` via the reactor's\n`handle_actions`.\nIf an inbound connection from the same peer is established in that window,\n`Service::connected` takes the `Entry::Occupied` branch and moves the session to\n`Connected`, leaving a stale `Io::Connect` behind it. When it is finally drained\nthe `attempted` call on a `Connected` session causes the node to abort(!!), due\nto the assertion, with:\n\n    thread 'service' panicked at 'Can only transition to 'attempted' state from\n      'initial' state': crates/radicle-protocol/src/service/session.rs:243\n    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value:\n      Any { .. }': crates/radicle-node/src/runtime.rs:301\n\nThe reactor thread dies, `Runtime::run` joins it and unwraps, and the process\nexits 101.",
        "base": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
        "oid": "3b91a8165f701a93ff7992d50b5d1b3b5711ebd8",
        "timestamp": 1790761063
      }
    ]
  }
}

Send response

{
  "response": "triggered",
  "run_id": {
    "id": "a98d3e79-7d41-4f92-84a2-ef4e4910726e"
  },
  "info_url": "https://cci.rad.levitte.org//a98d3e79-7d41-4f92-84a2-ef4e4910726e.html"
}

Checkout the source (in /opt/radcis/ci.rad.levitte.org/cci/state/a98d3e79-7d41-4f92-84a2-ef4e4910726e/w)

Started at: 2026-09-30 11:37:54.108048+02:00

Commands:

Read the repo configuration (.radicle/native.yaml in /opt/radcis/ci.rad.levitte.org/cci/state/a98d3e79-7d41-4f92-84a2-ef4e4910726e/w)

shell: 'export RUSTDOCFLAGS=''-D warnings''


  cargo --version

  rustc --version


  cargo fmt --check

  cargo clippy --all-targets --workspace -- --deny warnings

  cargo build --all-targets --workspace

  cargo doc --workspace --no-deps --all-features

  cargo test --workspace --no-fail-fast

  '

Run the script

Commands:

Send result

{
  "response": "finished",
  "result": "failure"
}