{% extends "base.html" %} {% block title %}Run {{ run.run_id }} - Piply{% endblock %} {% block content %}
Dag run

{{ run.pipeline_title }}

Run {{ run.run_id }} was triggered via {{ run.trigger }}. Select a task in the graph to inspect it, filter logs, or retry from the failing point.

{{ run.status }} pipeline {{ run.pipeline_id }} duration {% if run.duration_seconds is not none %}{{ "%.1fs"|format(run.duration_seconds) }}{% else %}-{% endif %} tasks {{ run.successful_tasks }}/{{ run.task_count }} exit {{ run.exit_code if run.exit_code is not none else "pending" }} {% if run.retry_of %} retry of {{ run.retry_of }} {{ run.retry_mode }} {% endif %} {% if run.status in ['queued', 'running'] %} {% else %} {% endif %}

Run graph

The graph keeps live task colors and durations visible while the side panel turns the selected task into an action surface.

success running failed cancelled queued skipped

Raw logs

Newest lines on top. Timestamps are formatted as HH:MM:SS.SSS.

showing all logs
{% if logs %} {% for line in logs %}
{{ line.task_id or "pipeline" }}
{{ line.message }}
{% endfor %} {% else %}
No output has been captured yet for this run.
{% endif %}

Upcoming runs

The next scheduled slots for this pipeline.

{% if upcoming_runs %}
{% for item in upcoming_runs %}
{{ item.label }} {{ item.scheduled_for.astimezone().strftime('%Y-%m-%d %H:%M') }}
{% endfor %}
{% else %}
This pipeline does not have a schedule.
{% endif %}

Flow summary

Stored exactly as Piply launched it so commands, scripts, and call targets stay visible for debugging.

{{ run.command }}

Task run states

Select any task card or node to align the graph, details, and log filter around the same task.

{% for task in task_runs %}

{{ task.title }}

{{ task.task_id }}
{{ task.status }}
{{ task.task_type }} logs {{ task.log_count }} duration {% if task.duration_seconds is not none %}{{ "%.1fs"|format(task.duration_seconds) }}{% else %}-{% endif %}
{{ task.command_preview }}
{% if task.error %} {% endif %}
{% endfor %}
{% if run.error %}

Failure signal

The pipeline-level failure summary captured when the run ended.

{{ run.error }}
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}