Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add wardawgmalvicious/agent-config --skill fabric-gotchasgit clone --depth 1 https://github.com/wardawgmalvicious/agent-configWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/wardawgmalvicious/agent-config/fabric-gotchas)<a href="https://agentmods.dev/skills/wardawgmalvicious/agent-config/fabric-gotchas"><img src="https://agentmods.dev/badge/skills/wardawgmalvicious/agent-config/fabric-gotchas/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/wardawgmalvicious/agent-config/fabric-gotchas"><img src="https://agentmods.dev/badge/skills/wardawgmalvicious/agent-config/fabric-gotchas.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00240 | $0.02929 |
| Opus 5 | $0.00120 | $0.01465 |
| Sonnet 5 | $0.00048 | $0.00586 |
| Haiku 4.5 | $0.00024 | $0.00293 |
Grade A, and why
fabric-gotchas scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Common gotchas & troubleshooting
| Issue | Cause | Fix |
|---|---|---|
401 Unauthorized |
Wrong token audience | Check audience table in fabric-auth skill; verify aud claim at jwt.ms |
403 Forbidden on Power BI API |
User has Viewer role | Refresh/data sources/permissions APIs require Contributor+. Stop retrying — it's permissions. |
404 EntityNotFound on getDefinition |
Insufficient permissions masquerading as 404 | Check workspace role first; don't retry with different URLs |
PowerBIEntityNotFound / EntityNotFound from pipeline, Variable Library, or REST call |
Used .platform logicalId instead of runtime item ID |
Fetch runtime ID from Fabric portal URL or GET /v1/workspaces/{wsId}/items. See fabric-rest-api skill (Item IDs section) |
Login failed... database not found |
Wrong Initial Catalog | Use item display name, not FQDN. Verify workspace role. Connections with no Initial Catalog now land deterministically on master (drill-verified) — confirm with SELECT DB_NAME() and switch with USE [<item display name>] instead of reconnecting. |
| Error 24556/24706 snapshot conflict | Concurrent writes to same table | Serialize writes; retry with backoff |
nvarchar / datetime / money errors |
Unsupported types in Fabric Warehouse | Use varchar, datetime2(6), decimal(19,4) (Warehouse only — fabric-database skill supports these) |
| COPY INTO auth error | Missing Storage Blob Data Reader on ADLS | Grant role or use SAS in CREDENTIAL |
| MERGE failures in production | Preview feature with table-level conflict detection | Use DELETE + INSERT pattern instead (Warehouse only — fabric-database skill supports MERGE) |
| ALTER COLUMN fails | Not supported in Fabric Warehouse | Use CTAS + sp_rename workaround (Warehouse only — fabric-database skill supports ALTER COLUMN) |
| Table empty after Git sync of a DDL change | Sync rebuilt the table (DacFx table-rebuild path) — even a nullable ADD COLUMN (observed 2026-09-03; mechanism undocumented) |
Capture needed rows/state before syncing DDL to a populated table; re-register after. See fabric-warehouse — Schema Evolution |
| TMDL validation error | Spaces instead of tabs, or // comments |
Use literal tabs; use /// for descriptions |
| Parts missing after updateDefinition | Only modified parts sent | Must include ALL parts in every update |
DefaultJob in job execution |
Wrong jobType | Use type-specific values: RunNotebook, Pipeline, SparkJob, Refresh |
sqlcmd not found or ODBC errors |
Wrong sqlcmd version | Use Go version: winget install sqlcmd (not ODBC /opt/mssql-tools/ version) |
| Slow / stale Lakehouse SQLEP queries | Small-file problem, or metadata-sync lag on newly-landed data | Run OPTIMIZE and VACUUM via Spark. If on the new metadata-sync preview, diagnose staleness via the DMV / targeted refresh in the note below |
| Query Insights empty | Views not yet generated after creation | Wait ~2 minutes |
| OneLake 401 | Wrong storage audience | Must use https://storage.azure.com/.default exactly |
| TDS connection timeout | Port 1433 blocked | Open outbound TCP 1433; allow *.datawarehouse.fabric.microsoft.com |
| Cross-database query fails | Items in different regions or workspaces | All items must share same workspace AND region |
Notebook upload 400 exceptionCulprit:1 |
Cell source is a bare string, not an array |
Convert every cell's source to array-of-strings form (["line\n", "line\n", "last"]). Applies to markdown and code cells. |
CloudEventPropertyMissingException: ...type is missing when publishing to a schema-associated Eventstream custom endpoint |
Attributes sent in the JSON body / structured mode | Send binary-mode CloudEvents: cloudEvents:-prefixed Event Hub application properties (not body). See [[fabric-eventstream]] — Producing to a schema-associated custom endpoint |
InvalidContent (first issue: ValueMismatch) syncing Git → workspace |
Variable Library value-set override names a nonexistent variable (rename not propagated to valueSets/*.json) or an empty value |
Rename in every value-set file; never commit "" values — use a FILL-ME-style sentinel. See [[fabric-variable-library]] |
| Deployment-rule dropdowns greyed out for a Direct Lake semantic model | DL on OneLake doesn't support data source rules; no M parameters exist yet for parameter rules (also requires item ownership) | Parameterize the workspace/lakehouse GUIDs as M parameters and use parameter rules. See [[fabric-tmdl]] — Direct Lake Configuration |
This query contains transformations that can't be used for DirectQuery refreshing a Direct Lake model |
Parameterized source + the model page's schema-and-data ribbon refresh, which re-evaluates the M (any parameterized shape) | False alarm: data-only / workspace-page / scheduled / pipeline refreshes work — they only reframe. See [[fabric-tmdl]] (observed 2026-08-24, undocumented) |
Report getDefinition returns a single report.json ("format": "PBIR-Legacy") |
Report never migrated to the enhanced PBIR folder format; PBIR file tooling can't process legacy | Request GET .../getDefinition?format=PBIR explicitly; if it still comes back legacy, upgrade the report (open + save as PBIP in Desktop, or rebuild) before file-level editing |
MissingDefinitionParts on report create/updateDefinition |
Part path values built with Windows backslashes |
Part paths must use forward slashes (definition/pages/.../visual.json) — build them explicitly, never from os.path / Join-Path output |
| Report publishes fine but every visual is empty | Local byPath dataset reference pushed as-is, or PBIR field bindings name tables/columns that don't exist in the target model |
Rebind definition.pbir to byConnection ("connectionString": "semanticmodelid=<runtime-id>") before REST publish; diff TMDL table/column names against the PBIR visual bindings to find mismatches |
Error loading dashboard / /tiles/N/queryRef ... must have required property 'baseQueryId' |
Malformed queryRef.queryId UUID — the schema's oneOf fails the query branch and reports the baseQuery branch instead |
Fix the UUID (RFC-4122, generated not hand-typed). See [[fabric-realtime-dashboard]] (docs: git-real-time-dashboard) |
"LibraryManagementError": "An upgrade to the base Spark Python environment has been detected. Please republish the environment.|UserError", or warning: 1 deprecation (since 2.13.0); for details, enable :setting -deprecation or :replay -deprecation with Source: SparkCoreService — on notebook or SJD execution |
Fabric Runtime 2.0's Python upgrade broke the environment item's python / wheel libraries | Republish the environment empty-first: remove all libraries → publish → re-add all libraries → publish again. See the Runtime 2.0 note below |
| Top-N visuals render empty AND the service report editor freezes on save-edits (report otherwise renders fine) | Hand-authored PBIR TopN filter with the subquery inlined in In.Table (or a bare VisualTopN condition) — passes schema validation and pbir validate, but the engine matches nothing and the editor can't rebuild the filter card |
Use the Desktop-canonical shape: subquery declared as a From source (Type: 2), referenced via In.Table.SourceRef. See [[pbir-filters]] — TopN (verified vs microsoft/BCApps, 2026-08) |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed 64c189dd09b9
- 8d ago Changed · +4 lines c16f08d0069d
- 12d ago First seen · 101 lines · 240 tokens per session scan A db14e482e237
fabric-gotchas is a skill published in the GitHub repository wardawgmalvicious/agent-config (1 stars, last pushed today), licensed MIT. It adds 240 tokens to every session and 2,929 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
azure-diagnostics
WORKFLOW SKILL — Debug and troubleshoot Azure production issues: Container Apps + Function Apps diagnostics, KQL log analysis, health checks. WHEN: 'debug production issues', 'troubleshoot container apps', 'troubleshoot function apps', 'image pull failures', 'cold start issues', 'health probe failures'. DO NOT USE…
azure-messaging
Troubleshoot and resolve issues with Azure Messaging SDKs for Event Hubs and Service Bus. Covers connection failures, authentication errors, message processing issues, and SDK configuration problems. WHEN: event hub SDK error, service bus SDK issue, messaging connection failure, AMQP error, event processor host issue…
azure-diagnostics
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, VM RDP, Linux SSH, VM black…
azure-messaging
Troubleshoot and resolve issues with Azure Messaging SDKs for Event Hubs and Service Bus. Covers connection failures, authentication errors, message processing issues, and SDK configuration problems. WHEN: event hub SDK error, service bus SDK issue, messaging connection failure, AMQP error, event processor host issue…
spk-admin-setup-doctor
Install, verify, and repair Spec Kitty commands, skills, agent paths, runtime prerequisites, and common setup failures.
ak-test
Set up testing and debug common issues in Agent Kernel projects. This skill guides you through configuring the built-in test framework, writing agent tests, choosing test modes (score, llm, fallback), and troubleshooting common errors.