Development Documentation
View as:

Platform Gotchas Quick Reference

A quick-lookup table of Microsoft Fabric platform quirks, organized by category. Each row links to the Troubleshooting page for detailed symptom-cause-fix writeups.

SQL & Data

GotchaImpactFix
Case-sensitive quoted identifiersQueries fail in Fabric that work locally in DuckDBUse bracket notation [Column] or normalizing CTE
datetime2 requires explicit precisionError 24597 on table creationAlways use datetime2(6)
Entire transaction rolls back on ANY errorPartial success disappears — all changes lostUse autocommit=True in pyodbc for mixed DDL scripts
Error 15151 is ambiguousSame error for missing schema AND missing objectCheck for "15151", not "42S02"; verify both schema and object exist
Bare varchar defaults to varchar(30)Silent data truncation, fewer rows after GROUP BYAlways specify explicit length: varchar(500)
dbt contract exact matchBuild fails on column name case or character mismatchEnsure SELECT aliases match contract name: fields exactly

Git Sync

GotchaImpactFix
PreferRemote removes ALL non-git itemsWarehouses and other items are deleted from workspaceOnly use PreferRemote on empty workspaces
Git sync always imports regardless of strategyUnexpected workspace changes after syncStrategy only controls conflict resolution, not import behavior
Disconnect doesn't remove synced itemsOld items remain after disconnecting gitExplicitly delete items before reconnecting
Report GUIDs are environment-specificPowerBIEntityNotFound when deploying to new envUse fabric-cicd parameter files for GUID substitution
Lakehouse needs 3 filesMissingItemDefinitionFiles errorCommit .platform, lakehouse.metadata.json, shortcuts.metadata.json
No auto-refresh after pushWorkspace content stays staleTrigger sync via REST API or portal manually

Auth & SPNs

GotchaImpactFix
REST API /git/connect rejects SPNsPrincipalTypeNotSupported errorUse Terraform fabric_workspace_git resource instead
ODBC SPN auth times out in CIdbt builds hang then fail on Ubuntu agentsUse CLI auth (az account get-access-token)
Creating SPN gets auto-AdminPrincipalAlreadyHasWorkspaceRolePermissionsSkip explicit Admin assignment for creating SPN
Object ID vs Client ID confusionAuth or RBAC fails depending on which GUID is usedObject ID for role assignments, Client ID for token acquisition
MI needs Fabric tenant setting403 despite correct workspace rolesAdd MI to security group in Fabric Admin Portal; wait 1 hour
MI needs Viewer on Gold for queriesExport queries fail with permission errorAssign Viewer via Terraform fabric_workspace_role_assignment
Wrong token scope causes 401Fabric API calls fail with valid credentialsUse api.fabric.microsoft.com/.default for REST, database.windows.net/.default for TDS
Fabric Admin API needs Capacity AdminCU monitoring returns 403Grant Capacity Admin in Fabric admin portal (not ARM RBAC)

TMDL & Semantic Models

GotchaImpactFix
description: causes parse failureWorkload_FailedToParseFileUse /// triple-slash syntax, not description: key-value
DAX reserved words cause opaque errorsSYNTAXERROR with no useful messageQuote table names with single quotes: 'refresh'[column]
DirectLake table with only measures failsSemantic model won't loadInclude at least one column (e.g., hidden dummy column)
sourceColumn must match dbt output exactlyModel deployment fails or shows wrong dataUse exact snake_case names from dbt output
No calculated columns in DirectLakeDesign limitationCompute all values in dbt, not in the semantic model

Reports

GotchaImpactFix
Embedded GUIDs are environment-specificReports fail in UAT/PRODUse parameter-ENV.yml for GUID substitution
pbiModelDatabaseName in .pbirWorkload_FailedToParseFileRemove field; use only connectionString with semanticmodelid

Azure Functions

GotchaImpactFix
No az CLI on Linux ConsumptionTimer functions crash with file-not-foundUse DefaultAzureCredential from azure.identity
requests table empty in App InsightsCannot monitor function invocationsChange host.json "Host.Results" to "Information"; use traces table
Cold-start telemetry lossFunction ran but no telemetry appearsCheck timer status blobs in Storage Account
past_due cascadingRapid repeated runs, host restartsEnsure execution time is well within schedule interval

Workspace & Infrastructure

GotchaImpactFix
Case-sensitive git connection namesTerraform git connection fails silentlyUse exact case: geris-devops, insights-requests
Branch policies block Fabric UI commitsCannot save changes from Fabric portalUse unprotected feature branches for UI development
Never mix Terraform + git sync in one workspaceState conflicts, data lossSeparate Gold (Terraform) from Bronze/Semantic/Reports (git sync)
.platform logicalId is environment-specificCross-env sync failsEach environment gets its own logicalId; git sync assigns on first creation

Related Pages