diagnose-terraform-unknown-error
Investigates a Terraform provider "unknown error" or opaque API error by adding temporary debug logging to the failing workflow step, triggering a run, and…
Skill by RascalTwo
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rascaltwo-diagnose-terraform-unknown-error
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, devops, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/diagnose-terraform-unknown-error
What's inside
- Skill name
diagnose-terraform-unknown-error- Description
- Investigates a Terraform provider "unknown error" or opaque API error by adding temporary debug logging to the failing workflow step, triggering a run, and extracting the actual HTTP request/response. Use when a Terraform plan or apply fails in GitHub Actions with "unknown error", a bare 4xx/5xx, or a provider message that does not say what the API rejected.
- License
- MIT
- Instructions
- 61 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Investigate a Terraform provider "unknown error" or opaque API error by adding temporary debug logging to the failing workflow step, triggering a run, and extracting the actual HTTP request/response.
## Usage
Provide:
- The workflow file to modify (e.g. `deploy.yml`)
- The step name that is failing (e.g. `Terraform Apply`)
- The working directory of that step (e.g. `ci/terraform`)
## Steps
### 1. Add TF_LOG=DEBUG to the failing step
Read the workflow file and modify the failing step to add debug logging with proper exit code capture:
```yaml
- name: <step-name>
working-directory: <working-dir>
env:
TF_LOG: DEBUG
run: |
<original-command> 2>&1 | tee /tmp/tf-debug.log; RESULT=${PIPESTATUS[0]}
exit $RESULT
```
IMPORTANT: Use `tee` + `${PIPESTATUS[0]}` pattern to preserve the exit code. Never pipe through grep at apply time — it masks the exit code.
### 2. Commit and push the change
Commit the modified workflow file with a message like "Temporarily add TF_LOG=DEBUG to diagnose <step-name> error" and push to the remote.
### 3. Trigger the workflow and wait for the run to complete
Trigger the workflow and wait for it to finish.
### 4. Download and analyze the full debug logs
```bash
gh api repos/<owner>/<repo>/actions/runs/<run-id>/logs > /tmp/run-logs.zip
```
Extract the HTTP request body sent to the failing API:
```bash
unzip -p /tmp/run-logs.zip | grep -a -A 40 "performing request.*<endpoint>" | head -60
```
Extract the HTTP response:
```bash
unzip -p /tmp/run-logs.zip | grep -a -A 15 "HTTP/[0-9]\.[0-9] [4-5][0-9][0-9]" | grep -v "azure\|microsoft\|storage" | head -40
```
For 403 errors, check the `Www-Authenticate` header — it will name the required scope.
For 500 errors, check the response body for an error code or look at the request body for missing/null fields.
### 5. Fix, remove debug logging, redeploy
After identifying the issue, revert the TF_LOG=DEBUG change and apply the actual fix in the same commit. Then commit, push, and trigger a new workflow run to verify.
Never leave TF_LOG=DEBUG in the workflow — it exposes secrets (API keys, tokens, client secrets) in plain text in the logs.
## See also
- To kick off the workflow run (steps 2–3), use the `trigger-github-deploy` skill.
- To wait for the run to finish before pulling logs, use the `wait-for-github-workflow` skill.
- If the run fails for a reason that is not an opaque provider error, use the `analyze-github-workflow-failure` skill.From RascalTwo/ai-setup, MIT.
More from RascalTwo/ai-setup
- 0.603score
ai-setup-audit
RascalTwo
Weekly interactive audit of the AI-agent setup shared across Claude Code and OpenAI Codex — AGENTS.md rules, skills, MCP servers, settings, subagents…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
github-attach-media
RascalTwo
Upload an image, screenshot, or video to get a renderable GitHub user-attachments URL for a PR, issue, comment, or Projects card, including private repos (no…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
okta-api
RascalTwo
Call the Okta REST API to inspect or manage Okta resources (identity providers, users, groups, apps, policies, etc.).
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
model-real-things-3d
RascalTwo
Builds a lifelike 3D model (GLB/glTF) of a real physical object (a PC case, a router, a UPS, furniture) at its true size, and changes it later on request.
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
browser-capture
RascalTwo
Saves screenshots, GIFs, or smooth video of a browser page to disk for docs, PRs, or reports.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
genui-viz
RascalTwo
Puts a generative UI card in front of the user mid-task (a floating panel glued to their terminal pane) and returns their answer as data: approve a risky…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
omnissa-horizon-vdi
RascalTwo
Operates a remote desktop through Omnissa Horizon Client on macOS, from Claude Code (computer-use MCP) or Codex (node_repl).
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
aws-creds
RascalTwo
Gets AWS credentials for any AWS account.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
diagnose-azure-container-app
RascalTwo
Diagnoses why an Azure Container App is failing to start by retrieving system events and application console logs.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
documandments
RascalTwo
Documentation discipline from the Ten Commandments of Documentation.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
dredge
RascalTwo
Looks back over a thing's history since the last dredge (sessions, commits, what you pushed back on), judges it with plus-ultra, and brings you every…
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
extract-video-subtitles
RascalTwo
Extracts embedded subtitle/caption tracks (WebVTT/SRT) from a local video file with FFmpeg; falls back to transcribe-media if none exist.
SkillAFreshness: A★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 24, 2026 (4 days ago)
- Last release
- Oct 24, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/RascalTwo/ai-setup
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from RascalTwo
- 0.603score
okta-api
RascalTwo
Call the Okta REST API to inspect or manage Okta resources (identity providers, users, groups, apps, policies, etc.).
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
github-attach-media
RascalTwo
Upload an image, screenshot, or video to get a renderable GitHub user-attachments URL for a PR, issue, comment, or Projects card, including private repos (no…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
ai-setup-audit
RascalTwo
Weekly interactive audit of the AI-agent setup shared across Claude Code and OpenAI Codex — AGENTS.md rules, skills, MCP servers, settings, subagents…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
model-real-things-3d
RascalTwo
Builds a lifelike 3D model (GLB/glTF) of a real physical object (a PC case, a router, a UPS, furniture) at its true size, and changes it later on request.
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
browser-capture
RascalTwo
Saves screenshots, GIFs, or smooth video of a browser page to disk for docs, PRs, or reports.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
diagnose-azure-container-app
RascalTwo
Diagnoses why an Azure Container App is failing to start by retrieving system events and application console logs.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
diagnose-terraform-unknown-error skill. Agent Mart. https://agentmart.dev/skills/rascaltwo-diagnose-terraform-unknown-error (last updated 2026-10-24)