Fabric Monitoring and Troubleshooting: Monitoring Hub, Audit Logs, Error Resolution for Pipelines, Notebooks, Dataflows, Eventstreams, Shortcuts, and Deployment Errors

Table of Contents

Building data pipelines is half the job. The other half is MONITORING them — knowing when they fail, WHY they fail, and HOW to fix them. This post is your troubleshooting manual for every Fabric item type.

  • The Monitoring Hub
  • Monitoring Pipeline Runs
  • Monitoring Notebook Runs
  • Monitoring Dataflow Gen2 Runs
  • Monitoring Semantic Model Refresh
  • Monitoring Eventstream and Eventhouse
  • Fabric Audit Logs
  • Enabling and Accessing Audit Logs
  • Key Audit Events
  • Error Resolution by Item Type
  • Pipeline Errors and Fixes
  • Notebook Errors and Fixes
  • Dataflow Gen2 Errors and Fixes
  • Eventstream Errors and Fixes
  • Eventhouse/KQL Errors and Fixes
  • OneLake Shortcut Errors and Fixes
  • T-SQL Errors and Fixes
  • Deployment Pipeline Errors
  • What Can and Cannot Be Deployed
  • Common Deployment Failures
  • Setting Up Proactive Monitoring
  • Common Mistakes
  • Interview Questions
  • Wrapping Up

The Monitoring Hub

The Monitoring Hub is Fabric’s centralized monitoring dashboard:

  1. Click Monitor in the left sidebar
  2. See ALL runs across ALL items in the workspace
  3. Filter by: item type, status (Success/Failed/InProgress), date range
Monitoring Hub shows:
  Item Name          | Type         | Status  | Duration | Start Time
  PL_Daily_ETL       | Pipeline     | Failed  | 12m 30s  | 2026-06-05 06:00
  NB_Clean_Customers | Notebook     | Success | 3m 15s   | 2026-06-05 06:12
  DF_Transform_Orders| Dataflow Gen2| Success | 5m 42s   | 2026-06-05 06:16
  Sales_Model        | Sem. Model   | Success | 1m 08s   | 2026-06-05 06:22

Click any row to drill into run details, activity durations, and error messages.

Monitoring Pipeline Runs

Pipeline run details show:
  ┌──────────────────────────────────────────┐
  │ Copy_Customers ──► DF_Clean ──► NB_Gold  │
  │      ✅              ✅           ❌      │
  │    45 sec          2m 10s       FAILED    │
  └──────────────────────────────────────────┘

Click the failed activity (NB_Gold):
  Error: "SparkException: Table gold.dim_customer does not exist"
  → Fix: Create the table first, or check the lakehouse attachment

Key Pipeline Monitoring Metrics

  • Rows read / rows written (for Copy activities)
  • Duration per activity
  • Error message and error code
  • Pipeline run ID (for support tickets)

Monitoring Notebook Runs

In the Monitoring Hub, click a notebook run to see: – Cell-by-cell execution status – Duration per cell – Spark UI link (for performance analysis) – Error traceback (Python/Scala stack trace)

# Add monitoring WITHIN your notebook
from datetime import datetime
start = datetime.now()

# ... your transformation logic ...

duration = (datetime.now() - start).total_seconds()
print(f"Completed in {duration:.0f} seconds. Rows: {df.count()}")

Monitoring Dataflow Gen2 Runs

  1. Right-click Dataflow Gen2 → Refresh history
  2. See: status, duration, start/end time, error details
  3. Common metrics: rows processed, data destination writes

Monitoring Semantic Model Refresh

  1. Workspace → Semantic Model → Refresh history
  2. See: refresh type (Direct Lake/Import), duration, status
  3. For Direct Lake: check if fallback to DirectQuery occurred

Monitoring Eventstream and Eventhouse

Streaming workloads need continuous monitoring because they run 24/7 — unlike pipelines that run once and finish:

EVENTSTREAM monitoring:
  Open Eventstream item → see the visual canvas with live metrics:
    - Events ingested per second (source throughput)
    - Events delivered per second (destination throughput)
    - Latency (time from source to destination)
    - Error count (deserialization failures, write failures)

  Healthy indicators:
    ✅ Ingested ≈ Delivered (no data loss)
    ✅ Latency < 5 seconds (near real-time)
    ✅ Error count = 0

  Problem indicators:
    ⚠️ Ingested >> Delivered (backlog growing — destination cannot keep up)
    ⚠️ Latency > 30 seconds (falling behind)
    🔴 Error count rising (schema mismatch or destination full)

EVENTHOUSE monitoring:
  Open KQL Database → Monitoring:
    - Ingestion success/failure rate
    - Storage size and growth rate
    - Cache hit ratio (hot vs cold reads)
    - Materialized view health (lag, last refresh)

  Key KQL monitoring queries:
    .show ingestion failures                    // Recent ingestion errors
    .show materialized-views                    // All views with health status
    .show table sensor_readings extents          // Number of data shards
    .show capacity                               // Current resource usage

In the Monitoring Hub, Eventstream runs appear alongside pipeline and notebook runs. For long-running streams, check the Eventstream canvas directly for real-time metrics rather than relying solely on the Monitoring Hub.

Fabric Audit Logs

Audit logs track WHO did WHAT and WHEN across your entire Fabric tenant:

Enabling and Accessing Audit Logs

  1. Admin PortalAudit logs (or use Microsoft Purview compliance portal)
  2. Audit logs are enabled by default for Fabric
  3. Access via: Purview compliance portal → Audit → Search

Key Audit Events

EventWhat It Tracks
CreateWorkspaceWho created a workspace
DeleteWorkspaceWho deleted a workspace
UpdateWorkspaceAccessWho changed workspace permissions
ViewReportWho viewed a Power BI report
ExportReportWho exported data from a report
RunPipelineWho triggered a pipeline
UpdateDatasetWho modified a semantic model
ShareItemWho shared an item externally
Audit log entry:
  Activity: UpdateWorkspaceAccess
  User: admin@company.com
  Target: DataEng_Prod workspace
  Detail: Added analyst@company.com as Viewer
  Timestamp: 2026-06-05 14:30:00

Error Resolution by Item Type

Pipeline Errors and Fixes

ErrorCauseFix
Connection failedCredentials expired or source downRefresh connection credentials
Copy activity timeoutLarge data + slow sourceIncrease timeout, add parallelism
Mapping errorSource schema changed (new/dropped column)Update column mapping
Activity dependency failedPrevious activity failedFix upstream activity first
Parameter errorMissing or wrong parameter typeVerify parameter names and types
Insufficient capacityCU exhaustedScale up or stagger pipeline schedule

Notebook Errors and Fixes

ErrorCauseFix
Table not foundWrong lakehouse attached or table missingCheck default lakehouse, verify table exists
OutOfMemoryErrorData too large for driver/executorsIncrease memory, reduce partitions, filter earlier
ModuleNotFoundErrorLibrary not installedAdd to Environment or use %pip install
Permission deniedUser lacks access to source dataCheck workspace role and OneLake permissions
Session timeoutIdle session expiredRe-run the notebook, increase timeout setting
Schema mismatch on writeTarget table schema differs from DataFrameUse overwriteSchema option or ALTER table

Dataflow Gen2 Errors and Fixes

ErrorCauseFix
Source connection failedCredentials or endpoint changedUpdate connection in workspace settings
Type conversion errorData contains invalid values for target typeAdd error handling (Replace Errors) before destination
Destination write failedSchema mismatch or permission issueCheck column mapping, verify write permissions
TimeoutToo much data for Power Query engineFilter at source (query folding), reduce data volume
Expression errorBad M formula in custom columnCheck M syntax, use try…otherwise

Eventstream Errors and Fixes

ErrorCauseFix
Ingestion lagSource producing faster than consumingScale destination, add more partitions
Deserialization errorEvent format mismatch (expected JSON, got binary)Fix source format or update schema in Eventstream
Destination write failedEventhouse table schema mismatchUpdate table schema to match events
Connection lostEvent Hub namespace down or key expiredCheck Event Hub health, rotate keys

Eventhouse/KQL Errors and Fixes

ErrorCauseFix
KQL query timeoutNo time filter — scanning entire tableAdd | where timestamp > ago(1h) early in the query
Storage limit reachedNo retention policy — data growing foreverSet retention: .alter table T policy retention
Materialized view staleView refresh failed or was disabledCheck: .show materialized-view V extents, re-enable if disabled
Ingestion failureSchema mismatch between source events and table columnsCheck: .show ingestion failures, update table schema or fix source
Slow queries on old dataQuerying data outside the hot cacheIncrease hot cache: .alter table T policy caching hot = 30d
Accelerated shortcut staleShortcut acceleration refresh failedCheck source connectivity, restart acceleration
Function not foundStored function was dropped or renamedCheck: .show functions, recreate if missing

OneLake Shortcut Errors and Fixes

ErrorCauseFix
Shortcut not accessibleSource storage credentials expiredUpdate connection credentials
Data not showingShortcut path incorrectVerify the exact container/folder path
Permission deniedMissing Fabric Read permission on containing itemGrant Read permission to the user
Cross-cloud timeoutS3/GCS egress slowEnable shortcut caching
Stale cached dataCache not refreshingCheck cache settings, force refresh

T-SQL Errors and Fixes

ErrorCauseFix
Invalid object name ‘schema.table’Table does not exist or wrong schema prefixCheck: SELECT * FROM INFORMATION_SCHEMA.TABLES, verify schema.table name
Cannot insert into table (read-only)Trying to INSERT into Lakehouse SQL endpoint (read-only)Use Spark notebook or pipeline for writes to Lakehouse. Only Warehouse supports T-SQL writes
Function not supportedUsing a T-SQL function not available in Fabric WarehouseCheck Fabric Warehouse T-SQL surface area — some SQL Server functions are not supported
Cross-database query failedReferencing a table in another lakehouse/warehouse without proper syntaxUse three-part name: other_lakehouse.dbo.table_name
Permission denied on SELECTUser lacks SELECT on the schema or tableGRANT SELECT on the schema: GRANT SELECT ON SCHEMA::gold TO [user]
Stored procedure failedSP references objects that do not exist in this environmentVerify all referenced tables exist, check deployment rules for environment differences
Query timeout (Warehouse)Complex query on large table without optimizationAdd WHERE filters, check table statistics, run OPTIMIZE on source Delta tables

Deployment Pipeline Errors

What Can and Cannot Be Deployed

ItemDeployable?
Notebooks✅ Yes
Pipelines✅ Yes
Dataflow Gen2✅ Yes
Semantic Models✅ Yes
Reports✅ Yes
Lakehouse (metadata)✅ Yes
Warehouse (metadata)✅ Yes
Spark Environments✅ Yes
Lakehouse/Warehouse DATA❌ No (only structure)
Mirrored Databases❌ No
Eventstreams❌ No
KQL Databases❌ No
Connections/Gateways❌ No (must be created per environment)
Workspace roles❌ No (must be set per workspace)

Common Deployment Failures

ErrorCauseFix
Item already existsName conflict in target workspaceRename or delete the conflicting item
Deployment rule missingConnection not swapped for target environmentAdd deployment rule for the data source
Permission deniedUser lacks deploy permissionEnsure Admin/Member role on target workspace
Dependent item missingItem references something not in the pipelineAdd the dependency to the deployment pipeline
Unsupported item typeTrying to deploy a non-deployable itemRemove from deployment (Eventstream, Mirrored DB)

Setting Up Proactive Monitoring

Reactive: Check Monitoring Hub when something seems wrong
Proactive: Get notified BEFORE anyone complains

Pipeline: Add Teams/Outlook activity on red (failure) path
Notebook: Return exit value with status → pipeline checks and alerts
Data Activator: Monitor etl_log table → alert on status='FAILED'
Capacity Metrics: Dashboard shows CU usage → alert before throttling

Common Mistakes

  1. Checking monitoring only when users complain — set up proactive alerts (pipeline failure → Teams notification).
  2. Not reading the full error message — the first line is generic, the details (stack trace, error code) tell you the actual cause.
  3. Not using audit logs for compliance — auditors will ask “who accessed this data?” Audit logs answer that.
  4. Deploying without deployment rules — Dev connections in Prod = reading Dev data in Production. Always set rules.
  5. Assuming data deploys with items — deployment pipelines deploy DEFINITIONS, not data. Pipelines must run in each environment to populate data.

Interview Questions

Q: How do you monitor Fabric items? A: Through the Monitoring Hub (centralized view of all runs across workspaces), item-specific refresh history, Spark UI for notebooks, Capacity Metrics app for CU usage, and audit logs for governance. Proactive monitoring uses pipeline failure activities (Teams/Outlook) and Data Activator alerts.

Q: What can and cannot be deployed via deployment pipelines? A: Deployable: notebooks, pipelines, dataflows, semantic models, reports, lakehouse/warehouse metadata, Spark environments. NOT deployable: actual data, mirrored databases, eventstreams, KQL databases, connections, workspace roles. Data must be loaded via pipelines in each environment separately.

Wrapping Up

Monitoring is not optional — it is the difference between finding problems at 6:01 AM and finding them at 9 AM when the CEO asks why the dashboard is empty. Monitor proactively, read error messages fully, use audit logs for compliance, and always test deployments with rules.

Related posts:Fabric Data FactoryGit Integration & CI/CDData ActivatorAdministration & Cost



Naveen Vuppula is a Senior Data Engineering Consultant and app developer based in Ontario, Canada. He writes about Python, SQL, AWS, Azure, and everything data engineering at DriveDataScience.com.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top