# Error: Secret AWS_ACCESS_KEY_ID is not set or is empty

- **ID:** `cicd/github-actions-secret-not-found`
- **Domain:** cicd
- **Category:** config_error
- **Error Code:** `GH_SECRET_MISSING`
- **Verification:** ai_generated
- **Fix Rate:** 90%

## Root Cause

The GitHub Actions workflow references a repository secret that does not exist or is empty, often due to the secret not being created at the repo or org level, or a typo in the secret name.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| GitHub Actions | active | — | — |
| GitHub Enterprise Server 3.8 | active | — | — |

## Workarounds

1. **Navigate to the repository settings, click 'Secrets and variables' > 'Actions', and add a new repository secret with the name AWS_ACCESS_KEY_ID and the correct value.** (95% success)
   ```
   Navigate to the repository settings, click 'Secrets and variables' > 'Actions', and add a new repository secret with the name AWS_ACCESS_KEY_ID and the correct value.
   ```
2. **If the secret is org-level, ensure the repository has access: go to org settings > 'Secrets and variables' > 'Actions' and add the repository to the secret's access list.** (90% success)
   ```
   If the secret is org-level, ensure the repository has access: go to org settings > 'Secrets and variables' > 'Actions' and add the repository to the secret's access list.
   ```

## Dead Ends

- **** — Secrets are not dynamically generated; they must be created manually or via API before the workflow runs. (100% fail)
- **** — Environment variables defined in YAML are visible in logs and not secure; GitHub requires secrets to be passed via `${{ secrets.SECRET_NAME }}` syntax. (60% fail)
