question

Pipeline run status doesn't terminate to `failed` or similar when there is an error

Hello,

I'm integrating with the pipeline API, and it seems like pipeline runs don't go to a final state assigned when they error out. I’ve created and queried a couple of errored out runs and they all have a status block like this:

        "state":
        {
            "changed": "2024-08-21T04:07:43.786Z",
            "error":
            {
                "message": "could not find cycle.json in repo"
            },
            "current": "running"
        },

Note that current is still running eventhough the run ended hours ago with a pretty permanent error. I would expect the current status to be something like failed, so I can pick it up and determine the run is done (and cooked).

avatar
1
  • Hey Thomas,

    This is correct behavior. :)

    In Cycle, nothing will ever get a state of 'error' except for jobs themselves. To check whether something is 'broken', you’ll check to see if state.error exists. The idea is that: if we change the state to “error”, we don’t actually know what state a resource was in when it encountered an error. So instead, we lock the state at the time of the error and set the error variable to the error in question.

    That said, errors not transient. If you re-run a task (restart, stop, etc) on a resource that is error'd, the error state will be reset before the new task is run. If the error state is set again after the task, you know that the task failed again.

    Hope this helps!

    avatar
    platform
v2024.08.14.01 © 2024 Petrichor Holdings, Inc.