> ## Documentation Index
> Fetch the complete documentation index at: https://docs.auxia.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting Google Cloud Storage

> Fix common GCS access, file, and sync issues

## Access

<AccordionGroup>
  <Accordion title="Error: Failed to obtain the location of the GCS bucket">
    **Cause:** The service account has **Storage Object Viewer** but not **Storage Legacy Bucket Reader**. **Check Access** passes (it only lists and reads files), but the transfer service also needs to look up the bucket's location.

    **Fix:** Grant the second role:

    ```bash theme={null}
    gcloud storage buckets add-iam-policy-binding gs://YOUR_BUCKET \
      --member=serviceAccount:SERVICE_ACCOUNT_EMAIL \
      --role=roles/storage.legacyBucketReader
    ```

    Then ask your Auxia contact to re-run the failed day.
  </Accordion>

  <Accordion title="Check Access fails: Missing roles/storage.objectViewer / Missing storage.objects.list">
    **Cause:** The grant hasn't propagated yet, was applied to a different bucket, or names a different service account.

    **Fix:**

    * Re-run the access commands from the wizard, wait a few minutes, then click **Check Access** again.
    * Confirm the service account email exactly matches the one in the wizard for *this* Auxia project.
    * Confirm the roles were granted on the bucket you entered. To check:

    ```bash theme={null}
    gcloud storage buckets get-iam-policy gs://YOUR_BUCKET \
      --format="table(bindings.role, bindings.members)"
    ```
  </Accordion>

  <Accordion title="Invalid bucket name">
    **Cause:** The bucket was entered with a scheme or path, such as `gs://my-bucket/exports`.

    **Fix:** Enter the bare bucket name — `my-bucket`. You'll choose folders in the next step.
  </Accordion>

  <Accordion title="The bucket lists nothing">
    **Cause:** The bucket is empty at the top level, or access was granted on a different bucket.

    **Fix:** The wizard says so explicitly rather than showing an empty screen. Check the bucket name, and type a prefix to jump to the folder that holds your data.
  </Accordion>
</AccordionGroup>

## Files and folders

<AccordionGroup>
  <Accordion title="CSV arrives as a single column / delimiter refused at setup">
    **Cause:** The file isn't comma-separated (semicolon, tab, or pipe). The wizard refuses these and shows the header it read.

    **Fix:** Re-export the data comma-separated with a header row, or as Parquet.
  </Accordion>

  <Accordion title="JSON file refused">
    **Cause:** The file is a single JSON array (`[{...}, {...}]`), not newline-delimited JSON.

    **Fix:** Re-export as newline-delimited JSON — one object per line, with a `.ndjson` or `.jsonl` extension — or as Parquet.
  </Accordion>

  <Accordion title="Unknown file format">
    **Cause:** Auxia couldn't tell what format the files are in — often whole-file compression (`.csv.gz`, `.parquet.gz`), archives, or mixed formats in one folder. Compressed files aren't read.

    **Fix:** Use uncompressed Parquet (with its built-in block compression), CSV, or newline-delimited JSON, one format per folder. For archives or PGP-encrypted files, contact your Auxia point of contact.
  </Accordion>

  <Accordion title="Different datasets ended up in one table">
    **Cause:** A parent folder holding several tables was selected, so everything under it was read as one table.

    **Fix:** Set up the connection again and select each table's own folder. See [One folder per table](/data-ingestion/concepts/file-sources#one-folder-per-table).
  </Accordion>

  <Accordion title="The wizard won't continue: date format must be confirmed">
    **Cause:** Your folder names read two ways — `03-04-2026` could be 3 April or 4 March.

    **Fix:** Pick the format that matches how your folders are written. Choosing wrong doesn't error later; it reads the wrong day every day.
  </Accordion>

  <Accordion title="Schema type needed / No user ID / No timestamp">
    **Cause:** Auxia couldn't identify what the table holds or which columns carry the required fields.

    **Fix:** On the Map step, set the table type (events or user attributes) and mark the user ID and timestamp columns. Without a schema type, rows are ingested as events.
  </Accordion>

  <Accordion title="Two configurations were created for one table">
    **Cause:** Going back to the Map step and forward again creates a second, inactive copy.

    **Fix:** Enable only the configuration you reviewed. The other stays switched off.
  </Accordion>
</AccordionGroup>

## After the connection is live

<AccordionGroup>
  <Accordion title="Configurations were created but Auxia couldn't switch them on">
    **Cause:** Setup completed, but enabling ingestion failed.

    **Fix:** **Contact your Auxia point of contact before trying again** — retrying creates duplicate configurations.
  </Accordion>

  <Accordion title="Detected date format or partitioning is wrong">
    **Cause:** The folder layout was misread — compact date folders such as `dt=20261002` are the most common case.

    **Fix:** On the Schedule step, set the **Partition folder** prefix and **Date format** yourself. If the configuration is already live, contact your Auxia point of contact to correct it and backfill the affected days.
  </Accordion>

  <Accordion title="Unified data is missing user IDs for a joined table">
    **Cause:** The lookup table that resolves the user ID wasn't selected in the same setup, or its key doesn't match the events table's key.

    **Fix:** Set up the events table and its lookup table together, joined on the shared key, and check that the key values actually overlap.
  </Accordion>

  <Accordion title="Every run says Skipped">
    **Cause:** The run found no new data. Usually the **partition folder prefix** or **date format** doesn't match your folder names, so Auxia looks for a folder that doesn't exist.

    **Fix:** Compare a real folder name (for example `dt=2026-10-02`) with the prefix and format on the configuration. Contact your Auxia point of contact to correct them, then request a backfill for the missed days.
  </Accordion>

  <Accordion title="Runs succeed but no data appears">
    **Cause:** Your files land after the daily run starts. A run that finds nothing reports success, not failure.

    **Fix:** Tell your Auxia contact when your files typically land so the data delay can be set to match, then request a backfill for the missed days.
  </Accordion>

  <Accordion title="Yesterday's data is missing after I re-uploaded a file">
    **Cause:** Files were overwritten in place. Sources must be append-only.

    **Fix:** Write corrected data as a new file with a new name, then ask your Auxia contact to backfill the affected day.
  </Accordion>
</AccordionGroup>

## Still stuck?

Contact [support@auxia.io](mailto:support@auxia.io) or your Auxia point of contact. Include your connection name, the folder path, and a screenshot of the error.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.