Signal errors 
==============

#### Guide to troubleshooting Signal errors 

#### ADDENDUM\_NOT\_SIGNED 

##### Signal-only actions were taken, but the client has not signed the Signal Addendum. 

##### Common causes 

*   A customer who was enabled for Balance before October 15, 2025 and is not enabled for Signal Transaction Scores called [/signal/decision/report](https://plaid.com/docs/api/products/signal/index.html.md#signaldecisionreport) , called [/signal/return/report](https://plaid.com/docs/api/products/signal/index.html.md#signalreturnreport) , or called [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) with the `device` or `user` fields populated.

##### Troubleshooting steps 

API error response

```json
http code 403
{
 "error_type": "SIGNAL_ERROR",
 "error_code": "ADDENDUM_NOT_SIGNED",
 "error_message": "The Signal Addendum has not been signed",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}
```

#### CLIENT\_TRANSACTION\_ID\_ALREADY\_IN\_USE 

##### The client\_transaction\_id value specified is not unique 

##### Common causes 

*   When calling [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , the specified `client_transaction_id` has already been used.

##### Troubleshooting steps 

API error response

```json
http code 400
{
 "error_type": "SIGNAL_ERROR",
 "error_code": "CLIENT_TRANSACTION_ID_ALREADY_IN_USE",
 "error_message": "Client transaction id has already been used in a different transaction",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}
```

#### INVALID\_CONFIGURATION\_STATE 

##### /signal/evaluate was called by a client whose Signal Rules configuration settings are in an invalid state 

##### Common causes 

*   A customer who is not enabled for Signal Transaction Scores called [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) with no ruleset key specified, while opted out of the default ruleset.

##### Troubleshooting steps 

API error response

```json
http code 400
{
 "error_type": "SIGNAL_ERROR",
 "error_code": "INVALID_CONFIGURATION_STATE",
 "error_message": "Client configuration state is missing default ruleset imputation, contact your Account Manager for assistance.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}
```

#### NOT\_ENABLED\_FOR\_SIGNAL\_TRANSACTION\_SCORE\_RULESETS 

##### A ruleset was specified that uses Signal Transaction Scores, but the customer is only enabled for Balance-only rulesets 

##### Common causes 

*   A customer who has previously used Signal Transaction Scores, but has since downgraded to Balance-only, attempted to use a ruleset that requires Signal Transaction Scores when calling [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) .

##### Troubleshooting steps 

API error response

```json
http code 403
{
 "error_type": "SIGNAL_ERROR",
 "error_code": "NOT_ENABLED_FOR_SIGNAL_TRANSACTION_SCORE_RULESETS",
 "error_message": "Your account is not enabled for Signal Transaction Score rulesets. Use a Balance-only ruleset or contact your Account Manager to enable Signal Transaction Scores.",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}
```

#### RULESET\_NOT\_FOUND 

##### The specified ruleset was not found 

##### Common causes 

*   When calling [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , no `ruleset_key` was specified, and the default ruleset has not been created.
*   When calling [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , a `ruleset_key` was specified, and no matching ruleset could be found.
*   When switching between Sandbox and Production, a `ruleset_key` was specified that exists only in Sandbox or only in Production.

##### Troubleshooting steps 

API error response

```json
http code 400
{
 "error_type": "SIGNAL_ERROR",
 "error_code": "RULESET_NOT_FOUND",
 "error_message": "Missing 'default' ruleset. Create the ruleset here: https://dashboard.plaid.com/signal/risk-profiles",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}
```

#### SIGNAL\_TRANSACTION\_NOT\_INITIATED 

##### A return was reported on a transaction that was also reported never to have happened. 

##### Common causes 

*   A return was reported on the transaction using [/signal/return/report](https://plaid.com/docs/api/products/signal/index.html.md#signalreturnreport) , but [/signal/decision/report](https://plaid.com/docs/api/products/signal/index.html.md#signaldecisionreport) was already called for the same transaction with a value of `initiated: false`.
*   A return was reported on the transaction using [/signal/return/report](https://plaid.com/docs/api/products/signal/index.html.md#signalreturnreport) , but the Signal Ruleset evaluation indicated a value of `REROUTE` for the transaction and [/signal/decision/report](https://plaid.com/docs/api/products/signal/index.html.md#signaldecisionreport) was never called with a value of `initiated: true`.

##### Troubleshooting steps 

API error response

```json
http code 400
{
 "error_type": "SIGNAL_ERROR",
 "error_code": "SIGNAL_TRANSACTION_NOT_INITIATED",
 "error_message": "Transactions previously reported as not initiated cannot be reported as returned",
 "display_message": null,
 "request_id": "HNTDNrA8F1shFEW"
}
```