Skip to content

e2e nightly failing: grpcio 1.82.0 breaks flower-superlink startup #9

Description

@faizollah

Symptom

Since 2026-07-06, the nightly real-app e2e workflow fails. flwr run never produces a crate, and validate_crate.py reports:

FAIL: crate not found at /tmp/flcrate_out/ro-crate/ro-crate-metadata.json (did the run produce one?)

The actual failure is earlier in the run — Flower's server can't start:

Starting local SuperLink on 127.0.0.1:39093...
╭─ Error ─────────────────────────────────────────────╮
│ Failed to start local SuperLink: `flower-superlink`  │
│ exited with code 1. See logs at .../superlink.log.   │
╰──────────────────────────────────────────────────────╯

(The job then hangs ~7.5 min on the crate-poll loop before failing, because flwr run ... || true swallows the SuperLink error.)

Root cause: grpcio 1.82.0

Diffing installed packages between the last green run (07-05) and a red run (07-07), the only change is grpcio:

Package Green 07-05 Red 07-07
grpcio 1.81.1 1.82.0
grpcio-health-checking 1.81.1 1.82.0
flwr 1.32.1 1.32.1
protobuf / ray / numpy / scikit-learn / … identical identical

grpcio 1.82.0 was published 2026-07-06 04:20 UTC — every e2e run after that timestamp fails, every run before it passed. Flower's SuperLink is a gRPC server, so a grpcio regression taking it down is consistent. The e2e installs grpcio unpinned (via flwr), so it upgraded automatically.

This is not a flwrCrate bug — it's an upstream Flower/grpcio incompatibility. The per-push tests workflow (recorded fixtures, no live Flower) is unaffected and green.

Workaround (this issue)

Pin grpcio<1.82 in the e2e workflow so it keeps validating flwrCrate against a working stack.

Follow-ups

  • Remove the grpcio pin once Flower caps grpcio or grpcio ships a fix.
  • Consider reporting upstream to Flower (flwr / flower-superlink fails to start under grpcio 1.82.0).
  • Optionally make the e2e fail fast (surface the SuperLink error instead of hanging 7.5 min behind || true).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions