> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/destinations/categories/database/redshift/common-issues.md).

# Common Issues

## Connection issues

<details>

<summary>Connection fails after entering credentials</summary>

The most common cause is network access. If your Redshift cluster is inside a VPC or behind a firewall, Coupler.io's requests will be blocked unless you allowlist its IP addresses:

* `34.123.243.115`
* `34.170.96.92`

Add these to your cluster's security group inbound rules (port 5439, TCP) and try connecting again.

{% hint style="warning" %}
If your cluster is paused, the connection will also fail. Resume the cluster in the AWS console before attempting to connect.
{% endhint %}

</details>

<details>

<summary>Wrong host or port causes timeout</summary>

Double-check the endpoint in your AWS console under **Clusters → your cluster → General information → Endpoint**. The default port is `5439` — if your cluster was configured with a custom port, use that value instead. Do not include the database name in the host field.

</details>

## Data issues

<details>

<summary>Append mode breaks after the source adds new columns</summary>

This is a known behavior. When a data source (such as Google Ads) introduces new columns, the existing Redshift table schema won't automatically update to accommodate them. Coupler.io will fail to insert rows that contain columns the table doesn't recognize.

To fix this, you have two options:

1. **Manually add the new columns** to the Redshift table using `ALTER TABLE` before running the data flow again.
2. **Switch to Replace mode temporarily**, run the data flow once to recreate the table with the new schema, then switch back to Append mode.

{% hint style="danger" %}
Option 2 will delete all existing rows in the table. If you need historical data preserved, use option 1 or export your data first.
{% endhint %}

</details>

<details>

<summary>Data types are wrong or cause insert errors</summary>

Coupler.io detects column types from the source data and enforces them when creating the table. If the source returns inconsistent types (e.g., a column that sometimes contains numbers and sometimes text), the load may fail or cast incorrectly.

Check the raw data in the **Preview** step of your data flow. If a column has mixed types, consider using a transformation to normalize it before it reaches Redshift.

</details>

<details>

<summary>Table or schema is not being created automatically</summary>

Coupler.io will only create schemas and tables if the database user has the necessary privileges. Ensure your user has `CREATE` privileges at both the database level (for schema creation) and within the target schema (for table creation). Run the following in Redshift to verify or grant permissions:

```sql
GRANT CREATE ON DATABASE your_database TO your_user;
GRANT CREATE ON SCHEMA your_schema TO your_user;
```

</details>

## Permission errors

<details>

<summary>"Permission denied" errors during data load</summary>

This usually means the database user has read-only access or is missing INSERT permissions on the target table. Grant the required permissions:

```sql
GRANT INSERT ON TABLE your_schema.your_table TO your_user;
```

For Replace mode, the user also needs `DROP` and `CREATE` permissions on the table because Replace recreates the table on every run.

</details>

<details>

<summary>User can connect but can't see or write to a specific schema</summary>

In Redshift, schema access is separate from database access. The user may be authenticated but not granted usage on a specific schema. Run:

```sql
GRANT USAGE ON SCHEMA your_schema TO your_user;
GRANT CREATE ON SCHEMA your_schema TO your_user;
```

</details>


---

# 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.coupler.io/destinations/categories/database/redshift/common-issues.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.
