Automation-Run erneut versuchen
curl --request POST \
--url https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"run_id": "yHhXbqWj3zJZ5ztDNfUry",
"status": "RUNNING",
"note": "Retried FROM the failed step — steps that already succeeded were NOT re-executed, so their side effects were not repeated."
}
{
"message": "The retry did not resume this run (its status is still 'FAILED') — its saved state is likely stale, most commonly because the run passed through a Delay step before failing. This run cannot be resumed as-is. To force a fresh full run (re-executes EVERY step, including any that already sent a message/email/call — get the user's explicit confirmation first, then rebuild via update-automation's repair path), or otherwise wait for the automation's next real trigger event.",
"error": "retry_no_op"
}
{
"message": "Run not found for this automation.",
"error": "not_found"
}
Automation-Run erneut versuchen
Versuche einen fehlgeschlagenen Famulor-Automation-Run ab dem fehlgeschlagenen Step erneut — ohne bereits erfolgreiche Steps.
POST
/
api
/
user
/
automate
/
flows
/
{id}
/
runs
/
{run_id}
/
retry
Automation-Run erneut versuchen
curl --request POST \
--url https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"run_id": "yHhXbqWj3zJZ5ztDNfUry",
"status": "RUNNING",
"note": "Retried FROM the failed step — steps that already succeeded were NOT re-executed, so their side effects were not repeated."
}
{
"message": "The retry did not resume this run (its status is still 'FAILED') — its saved state is likely stale, most commonly because the run passed through a Delay step before failing. This run cannot be resumed as-is. To force a fresh full run (re-executes EVERY step, including any that already sent a message/email/call — get the user's explicit confirmation first, then rebuild via update-automation's repair path), or otherwise wait for the automation's next real trigger event.",
"error": "retry_no_op"
}
{
"message": "Run not found for this automation.",
"error": "not_found"
}
Dieser Endpunkt wiederholt eine fehlgeschlagene Ausführung ab dem fehlgeschlagenen Step: bereits erfolgreiche Steps werden nicht erneut ausgeführt, sodass Side Effects (bereits gesendete E-Mail, bereits geschriebene Zeile) nicht wiederholt werden. Nutze ihn, nachdem du die Ursache behoben hast — neu verbundenes Konto, wiederhergestellte externe API — statt auf das nächste Trigger-Event zu warten. Der fehlgeschlagene Step und alles danach laufen dann echt und schließen die Arbeit des Original-Events ab.
Nimm die Run-
Eine fehlende Automation oder ein fehlender Run — oder einer, der nicht zu deinem Account gehört — liefert
id aus Runs auflisten. Ein Retry setzt denselben Run fort — er erzeugt keinen neuen.
Dieser Endpunkt nimmt keinen Request Body.
Path Parameters
string
erforderlich
Die ID der Automation (aus Automationen auflisten)
string
erforderlich
Die ID des fehlgeschlagenen Runs (aus Runs auflisten)
Response
string
Die ID des erneut versuchten Runs (derselbe Run wie übergeben)
string
Der Status des Runs direkt nach dem Retry (z. B.
RUNNING, oder SUCCEEDED wenn sofort fertig)string
Bestätigung, dass bereits erfolgreiche Steps nicht erneut ausgeführt wurden
404.
Fehlercodes (422)
| error | Bedeutung |
|---|---|
retry_no_op | Der Retry hat den Run nicht fortgesetzt — der gespeicherte Zustand ist veraltet, meist weil der Run vor dem Fehler durch einen Delay-Step gelaufen ist. Ein solcher Run kann so nicht fortgesetzt werden; die Meldung listet sichere Optionen (Automation reparieren oder auf das nächste echte Trigger-Event warten). |
retry_failed | Der Retry konnte nicht gestartet werden — kurz danach erneut versuchen. |
{
"run_id": "yHhXbqWj3zJZ5ztDNfUry",
"status": "RUNNING",
"note": "Retried FROM the failed step — steps that already succeeded were NOT re-executed, so their side effects were not repeated."
}
{
"message": "The retry did not resume this run (its status is still 'FAILED') — its saved state is likely stale, most commonly because the run passed through a Delay step before failing. This run cannot be resumed as-is. To force a fresh full run (re-executes EVERY step, including any that already sent a message/email/call — get the user's explicit confirmation first, then rebuild via update-automation's repair path), or otherwise wait for the automation's next real trigger event.",
"error": "retry_no_op"
}
{
"message": "Run not found for this automation.",
"error": "not_found"
}
Verwandte Seiten: Runs auflisten, Automation aktualisieren und Authentifizierung.
⌘I