> For the complete documentation index, see [llms.txt](https://docs-embed.anyflow.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-embed.anyflow.jp/ops/solution-error/solution-retry.md).

# ソリューションの再実行

## 再実行ボタンについて

エラーになった実行履歴については、エンドユーザーが「再実行ボタン」を押すことで自身で再実行することができます。連携先のサーバーが500エラーになっているなど、一時的なエラーを解決するために有効です。

{% hint style="warning" %}

### 再実行の仕組みについて

再実行は、エラーになった際のデータを用いて再実行を試みます。\
したがって、エラーになっている内容によっては再実行を試みてもエラーが解決できない場合がございます。\
実行に失敗しており、アーカイブ（30日経過）されていない実行履歴にのみ、再実行ボタンが表示されます。\
ボタンが表示されている限り、実行に成功するまでは何度でも再実行をトライできます。
{% endhint %}

## 再実行の手順

1. エンドユーザー側でエラーになった連携ソリューションを再実行するには、該当する連携ソリューションのウィザードを開きます。

<figure><img src="https://files.readme.io/5888a9d-Screen_Shot_2023-01-16_at_7.37.10_PM.png" alt="615" width="375"><figcaption><p>エンドユーザー側でウィザードを表示する</p></figcaption></figure>

2. エラーになっている行の「再実行」ボタンをクリックします。
3. 確認画面が表示されるので、内容を確認しボタンをクリックします。
4. エラーになった連携ソリューションの、エラー時のデータを再利用して再度実行を試みます。

{% hint style="success" %}

### ヒント

再実行すべき件数が多い場合は、依頼いただければAnyflow側でまとめて再実行することも可能です。
{% endhint %}

## Q\&A

#### Q. Webhookトリガーを利用したソリューションにおいて、Webhookで受け取ったデータが不足しているなどで失敗した場合、エンドユーザーが再実行ボタンを押した場合、何度も失敗し続けますか？

はい、失敗し続けます。再実行ボタンは、失敗した際のデータを再利用します。再実行ボタンのメインユースケースは、連携先のサーバーが500でエラーになったなどの一時的なエラーに有効な機能です。

#### Q. Formulaを利用したソリューションがエラーになっていた場合、その後ミスを修正してデプロイし直した場合、エンドユーザーが再実行ボタンを押した場合には、Formulaが修正された状態で実行されますか？

はい、修正された状態で再実行されます。

#### Q. ポーリングトリガーの初回実行時、一部のレコードをソリューションで処理する中でエラーが発生しました。これは再実行できますか？

はい、再実行可能です。例えば初回実行で100件のSalesforceレコードを取得し、そのうち5件についてソリューション内でエラーが発生したとき、それら5件のレコードの実行履歴にはそれぞれ、再実行ボタンが表示されます。

#### Q. 再実行した実行履歴が、過去に再実行されたかどうかを判別することは可能ですか？

いいえ、できません。

#### Q. 再実行の回数に制限はありますか？

いいえ、再実行の回数に制限はなく、何度でも再実行することが可能です。

## アクションの再試行（リトライ）について

以下の場合に、アクションが再試行（リトライ）される可能性があります。

* SaaS側のシステム障害
* APIのリクエスト回数の制限
* SaaS側のメンテナンス発生時にソリューションが実行された場合

冪等性が担保される（何回実行しても同じ結果になる）リクエストに対して、再試行されます。

## 共通仕様

* 再試行はAPIリクエストレベルで実行されます。
  * 例：アクション内でAリクエスト、Bリクエスト、といった２回のAPIリクエストが行われる場合、Bリクエストでエラーになったからといって、アクション自体(Aリクエストまで)再試行されることはありません。
* 再試行の条件や試行回数はソリューションエディタ上から指定することはできず、コネクタのアクションごとに決まっています。
* 再試行遅延時間は、
  * [Retry-After](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) ヘッダーがあればその値に準拠します。（最小は 1 秒 、最大は 300 秒）
  * [Retry-After](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) ヘッダーがなければ60 秒です。

## デフォルトの挙動

コネクタのアクションについて特段調整をしていない場合、デフォルトでは以下の挙動で再試行を行います。

**デフォルトの挙動**

* 再試行条件：
  * ステータスコード：429, 500, 502, 503, 504, 507　のいずれかの場合\
    ※これ以外のステータスコードは即APIエラーとして記録されます
  * HTTPメソッド：GET, OPTIONS　のいずれかの場合\
    ※POST等はデータベースの二重書き込みを防ぐためにデフォルトの再試行には含めていません
* 再試行回数：2回

## 専用アクションによって変更可能な挙動

上記のデフォルト挙動に対し、連携コネクタの専用アクションは再試行の条件等を変更することが可能です。

自社サービスのコネクタをAnyflowに開発依頼する際に、ご希望があればデフォルトから変更いたします。

**変更可能な挙動**

* 再試行条件
  * 再試行対象のステータスコード／レスポンスボティを指定可能です。
  * 「ステータスコードが 404 だったら」「レスポンスボティに "limited" が含まれていたら」といった指定が可能です。
* 再試行対象のメソッド指定
  * 「PUTのみ」「DELEETとGETのみ」といった指定が可能です。
* 再試行回数：0\~5回

**カスタムアクションについて**

* カスタムアクションではデフォルトの挙動が適用されます。基本的にカスタマイズはできません。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs-embed.anyflow.jp/ops/solution-error/solution-retry.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
