Troubleshooting
Use this page to diagnose setup, Azure deployment, validation, and Accelerator agent issues during the MicroHack.
Quick Diagnosis
Section titled “Quick Diagnosis”Dev Container
Section titled “Dev Container”Docker won’t start
Section titled “Docker won’t start”Symptoms: Docker Desktop fails to launch or reports an error on startup.
Fixes:
- Windows: Ensure WSL 2 is enabled (
wsl --installorwsl --update). Restart Docker Desktop after enabling WSL 2. - Mac: Check that virtualization is enabled in System Settings.
- Restart Docker Desktop. If it still fails, try resetting to factory defaults.
Container fails to build
Section titled “Container fails to build”Symptoms: “Build failed” or timeout when reopening in container.
Fixes:
- Ensure Docker Desktop is running and has at least 4 GB of RAM allocated
- Run
Dev Containers: Rebuild Container Without Cachefrom the Command Palette - Check your network; the build pulls images from
mcr.microsoft.com
Extensions not loading
Section titled “Extensions not loading”Symptoms: Copilot Chat or Bicep extension missing after container starts.
Fix: The recommended extensions are in .vscode/extensions.json.
Run Extensions: Show Recommended Extensions and install any that are missing.
Azure CLI
Section titled “Azure CLI”az login fails inside Dev Container
Section titled “az login fails inside Dev Container”Symptoms: Browser-based login does not redirect back.
Fix: Use device code flow:
az login --use-device-codeSubscription not found
Section titled “Subscription not found”Symptoms: Deployment fails with “subscription not found”.
Fixes:
- List available subscriptions:
az account list --output table - Set the correct one:
az account set --subscription "<name-or-id>"
bicep build fails with module errors
Section titled “bicep build fails with module errors”Symptoms: “Unable to restore module” or “module not found”.
Fixes:
- Clear the Bicep module cache:
bicep restore <file> - Ensure you have internet access (AVM modules are fetched from
mcr.microsoft.com) - Check the module version exists:
bicep publisherrors often mean a typo in the version
Lint warnings about parameter descriptions
Section titled “Lint warnings about parameter descriptions”Symptoms: no-unused-params or missing-description warnings.
Fix: Every param must include a @description() decorator. Example:
@description('The Azure region for all resources.')param location string = resourceGroup().locationCopilot Agents
Section titled “Copilot Agents”Copilot not working
Section titled “Copilot not working”Symptoms: Copilot Chat is unresponsive or shows authentication errors.
Fixes:
- Sign out of GitHub in VS Code and sign back in with the correct account
- Reload VS Code (
Developer: Reload Window) - Verify your Copilot subscription at github.com/settings/copilot
- Open the current Accelerator agent files and confirm their declared models are permitted by your account or organization
Agent model is not available
Section titled “Agent model is not available”Symptoms: An Accelerator agent cannot start because its declared model is unavailable.
Fixes:
- Open the affected
.github/agents/*.agent.mdfile and note its currentmodelvalue. - Check your Copilot plan entitlements and organization model policy.
- Ask the GitHub organization or enterprise owner whether that model is permitted.
- Reload VS Code after policy changes.
Do not replace the model declaration only to make the error disappear. Compare your repository with the current Accelerator and ask the facilitator before changing an upstream-managed agent.
Agent not appearing in Chat
Section titled “Agent not appearing in Chat”Symptoms: A main agent such as 01-Orchestrator does not appear in the agent picker.
Fixes:
- Confirm that you opened the template-derived repository, not this documentation repository.
- Confirm the repository is open in its Dev Container.
- Verify the expected files exist under
.github/agents/. - Reload VS Code with
Developer: Reload Window. - Compare the repository with the current APEX Accelerator if files are missing.
Do not enable a legacy discovery setting as a substitute for loading the current repository configuration.
Agent produces incomplete output
Section titled “Agent produces incomplete output”Symptoms: Agent stops mid-response or skips steps.
Fixes:
- Break large requests into smaller steps
- Provide explicit file paths when referencing artifacts
- Use
01-Orchestratorto identify the next main agent and proposed handoff; the human still selects and approves that handoff
MCP servers not working
Section titled “MCP servers not working”Symptoms: A GitHub or Azure MCP server declared by the Accelerator returns an error or is unavailable.
Fixes:
- Inspect
.vscode/mcp.jsonin the template-derived repository and identify the failing server. - Preserve the exact startup or authentication error.
- Confirm account and organization policy permits the declared server.
- For Azure-backed tools, confirm the required Azure sign-in and subscription context.
- Reload VS Code with
Developer: Reload Window. - Compare your MCP configuration with the current APEX Accelerator.
The server list changes over time. Do not diagnose against the retired Azure Pricing, Draw.io, MS Learn, or Terraform list unless those servers are present in your current repository.
GitHub reference: Configure MCP server access
APEX reference: MCP server integration
Validation and Linting
Section titled “Validation and Linting”Run the commands in this section from the root of your working repository created from the accelerator template, not from this documentation repo.
npm run lint:md fails
Section titled “npm run lint:md fails”Symptoms: markdownlint reports errors.
Fix: Auto-fix most issues:
npm run lint:md:fixFor remaining issues, check .markdownlint-cli2.jsonc for the rule that fired.
npm run lint:links reports broken links
Section titled “npm run lint:links reports broken links”Symptoms: markdown-link-check finds dead links.
Fixes:
- For internal links: verify the target file exists
- For external links: check if the URL is behind authentication or geo-blocked
- Add false positives to
.markdown-link-check.jsonignore patterns
Secrets and Credential Leakage
Section titled “Secrets and Credential Leakage”Secret appears in agent output or committed file
Section titled “Secret appears in agent output or committed file”Symptoms: A connection string, access key, or password is visible in an agent-generated file or Git history.
Fixes:
- Rotate the credential immediately — regenerate the key or password in the Azure portal or CLI
- Replace the secret with a placeholder (
<your-connection-string>) in the file - If already committed, remove from Git history or notify your facilitator
- Use Key Vault references or environment variables going forward
Preventing secret leakage
Section titled “Preventing secret leakage”- Never paste real secrets into Copilot Chat prompts
- Review all agent-generated files before committing
- Use
az keyvault secret setto store secrets safely - Use managed identities where possible to avoid secrets entirely
Policy Errors and Governance
Section titled “Policy Errors and Governance”RequestDisallowedByPolicy on deployment
Section titled “RequestDisallowedByPolicy on deployment”Symptoms: Deployment fails with a policy violation error naming a specific policy.
Diagnosis:
- Read the error message — it names the policy that denied the operation
- Common MicroHack policies: required tags (
Environment,Project), HTTPS-only, TLS 1.2, allowed locations
Fixes by policy type:
| Policy denial | Fix |
|---|---|
Missing Environment or Project tag | Add tags block to every resource in your Bicep |
| Storage not HTTPS-only | Set supportsHttpsTrafficOnly: true |
| Storage TLS version | Set minimumTlsVersion: 'TLS1_2' |
| Storage public blob access | Set allowBlobPublicAccess: false |
| SQL not Azure AD-only | Set azureADOnlyAuthentication: true |
| App Service not HTTPS | Set httpsOnly: true |
| Location not allowed | Deploy to swedencentral or germanywestcentral only |
Policies not taking effect
Section titled “Policies not taking effect”Symptoms: Deployment succeeds but you expected a policy denial, or Get-GovernanceStatus.ps1 shows Unknown.
Fixes:
- Azure Policies take 5–15 minutes to propagate after deployment
- Ask your facilitator to run
pwsh -File scripts/Get-GovernanceStatus.ps1 -Subscription "<subscription-name-or-id>" -MicrohackOnlyto check activation status - If status is
Unknown, wait 10 minutes and re-check - If still not active after 30 minutes, ask facilitator to re-run
Setup-GovernancePolicies.ps1
Escalation
Section titled “Escalation”If you cannot resolve a policy error after checking the table above, ask your facilitator. Provide the full error message and the resource type you were deploying.
Quota Errors
Section titled “Quota Errors”QuotaExceeded on deployment
Section titled “QuotaExceeded on deployment”Symptoms: Deployment fails with quota or capacity error for a specific resource type or region.
Fixes:
- Check current usage:
az vm list-usage -l swedencentral -o table - Try a smaller SKU (e.g., S1 instead of P1v3)
- Try the secondary region (
germanywestcentral) - Delete unused resources from previous attempts
- Ask your facilitator for help if no quota is available
Deployment Errors
Section titled “Deployment Errors”NameNotAvailable or StorageAccountAlreadyTaken
Section titled “NameNotAvailable or StorageAccountAlreadyTaken”Symptoms: Globally unique resource name is already in use.
Fix: Use uniqueString(resourceGroup().id) suffix pattern in your Bicep naming convention.
AuthorizationFailed during deployment
Section titled “AuthorizationFailed during deployment”Symptoms: Deployment fails with permission error.
Fixes:
- Verify you’re targeting the correct subscription:
az account show - Re-authenticate:
az login --use-device-code - Confirm you have Owner or Contributor role on the subscription
Deployment timeout or partial failure
Section titled “Deployment timeout or partial failure”Symptoms: Some resources create successfully, others fail or time out.
Fixes:
- Check the deployment status in the Azure portal (Resource group → Deployments)
- Look for the specific resource that failed and its error message
- Preserve the exact error and escalate to the facilitator or the selected
07b-Bicep Deployor07t-Terraform Deployagent. Participants must not substitute direct Azure CLI deployment for the approved agent path.
MicroHack-Specific
Section titled “MicroHack-Specific”Governance policies not applying
Section titled “Governance policies not applying”Symptoms: Setup-GovernancePolicies.ps1 runs but policies don’t appear.
Fix: Policy assignments can take up to 30 minutes to propagate. Ask your facilitator to verify policy status with:
pwsh -File scripts/Get-GovernanceStatus.ps1 -Subscription "<subscription-name-or-id>" -MicrohackOnly