Réessayer une exécution d'automatisation
curl --request POST \
--url https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retryimport requests
url = "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
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));<?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",
]);
$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)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_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"
}
Automatisations
Réessayer une exécution d'automatisation
Relance une exécution d’automatisation Famulor en échec depuis son étape en échec, sans réexécuter les étapes déjà réussies.
POST
/
api
/
user
/
automate
/
flows
/
{id}
/
runs
/
{run_id}
/
retry
Réessayer une exécution d'automatisation
curl --request POST \
--url https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retryimport requests
url = "https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
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));<?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",
]);
$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)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/automate/flows/{id}/runs/{run_id}/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_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"
}
API Famulor 1.0 (héritée). Cette page concerne uniquement Famulor 1.0 (
app.famulor.de) et est conservée pour la compatibilité. Pour la plateforme actuelle, consultez la référence API Famulor 2.0.id de l’exécution dans Lister les exécutions d’automatisation. Une nouvelle tentative reprend la même exécution — elle n’en crée pas de nouvelle.
Ce point de terminaison ne prend aucun corps de requête.
Paramètres de chemin
string
requis
L’ID de l’automatisation (voir Lister les automatisations)
string
requis
L’ID de l’exécution en échec (voir Lister les exécutions d’automatisation)
Réponse
string
L’ID de l’exécution relancée (la même que celle transmise)
string
Le statut de l’exécution juste après la nouvelle tentative (par ex.
RUNNING, ou SUCCEEDED en cas d’achèvement immédiat)string
Confirmation que les étapes déjà réussies n’ont pas été réexécutées
404.
Codes d’erreur (422)
| error | Signification |
|---|---|
retry_no_op | La nouvelle tentative n’a pas relancé l’exécution — son état enregistré est obsolète, le plus souvent parce que l’exécution est passée par une étape Delay avant d’échouer. Une telle exécution ne peut pas être reprise telle quelle ; le message indique les options sûres (réparer l’automatisation, ou attendre son prochain véritable événement déclencheur). |
retry_failed | La nouvelle tentative n’a pas pu être lancée — réessayez sous peu. |
{
"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"
}
Pages associées : Lister les exécutions d’automatisation, Mettre à jour une automatisation et Authentification.