No more WARNING state on script tasks when ERROR logs are present​No more ​W​A​R​N​I​N​G state on script tasks when ​E​R​R​O​R logs are present

Available on: Open Source EditionEnterprise Edition

Release: 0.23.0

Overview

We no longer set the task-run state to Warning if the script task emits some ERROR or WARNING logs and the warningOnStdErr property is deprecated. Script tasks will now always report a SUCCESS state if the Docker container exits with code 0, and a FAILED state for any non-zero exit code — ERROR or WARNING logs no longer influence the task run state.

Example flow:

yaml
id: loguru
namespace: company.team

inputs:
  - id: nr_logs
    type: INT
    defaults: 100

tasks:
  - id: reproducer
    type: io.kestra.plugin.scripts.python.Script
    taskRunner:
      type: io.kestra.plugin.scripts.runner.docker.Docker
    containerImage: ghcr.io/kestra-io/pydata:latest
    script: |
      from loguru import logger
      from faker import Faker
      import time
      import sys

      logger.remove()
      logger.add(sys.stdout, level="DEBUG")
      logger.add(sys.stderr, level="DEBUG")

      def generate_logs(fake, num_logs):
          logger.error("Starting to generate log messages")
          for _ in range(num_logs):
              log_message = fake.sentence()
              logger.warning(log_message)
              time.sleep(0.01)
          logger.warning("Finished generating log messages")

      if __name__ == "__main__":
          faker_ = Faker()
          generate_logs(faker_, int("{{ inputs.nr_logs }}"))

Before this change, the flow would end in WARNING; now it ends in SUCCESS.

Was this page helpful?