← Community
bugopen

railcall market publish <workflow.json> ignores the spec version field (module path honors it, workflow path doesn't) — every workflow re-pu

marcofgvmarcofgv#23d ago · 14 views
affected: station-v1.5.6 (railcall CLI latest, 10/

What happens
Republishing a workflow with railcall market publish <spec.json> (no --version flag) fails with HTTP 409: version "v1.0.0" must be strictly greater than the currently published, even though the spec JSON already carries a higher version (e.g. "v1.3.0"). The publisher never reads the version from the spec.

Repro

  1. Publish a workflow spec whose top-level version is "v1.2.0".
  2. Bump the spec's version to "v1.3.0", save.
  3. railcall market publish freelancer_daily_bidder.json (no --version)
  4. -> 409, because it POSTed v1.0.0.
  5. railcall market publish freelancer_daily_bidder.json --version v1.3.0 -> succeeds.

Mechanism (railcall_cli.py)
The two publish paths disagree:

  • module path (_market_publish_module): version = flag("version") or manifest.get("version") or "v1.0.0" — honors the manifest.
  • workflow path (_market_publish): version = flag("version", "v1.0.0") — the spec.get("version") fallback is missing, so it defaults to v1.0.0 whenever --version is absent.

Everywhere else the workflow path DOES read the spec (spec.get("id"), spec.get("title"), spec.get("category"), spec.get("description")), so version is the odd one out.

Fix (one line)
version = flag("version") or spec.get("version") or "v1.0.0" — mirror the module path.

Impact
Every workflow author hits a confusing 409 on their first re-publish and has to discover --version; the spec's own version field is dead on this path. Low severity, trivial fix, removes a real papercut for Track B entrants.

0 replies

Sign in to reply.