FlowDrop Workflow Specification 1.0-draft

Every reason a schedule has no next run carries a stable code

The report of a trigger's next run is the only view of a schedule an operator has. A report that cannot distinguish "fine, nothing due" from "will never fire" is the diagnostic being absent exactly when it is needed.

The rule

Normative: this is the rule
  1. An absent next run, reported on its own, means only that nothing is currently due, the answer a perfectly healthy schedule gives between fires.
  2. Every other reason a schedule yields no next run must be reported with a stable code: no_expression where the expression is cleared, invalid_expression where it is malformed, or well-formed but unsatisfiable.
  3. Severity must not be flattened: an unusable timezone does not stop a trigger, since the implementation substitutes UTC, so such a schedule still reports a real next run alongside the code invalid_timezone; an expression problem, being the more consequential of the two, takes its place.
  4. A broken stored schedule is not a broken request: the report is answered with 200 and carries the diagnosis.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · CRON-2 · changed in spec 1.0