Bug description
The msexports_ETL_ingestion pipeline fails with a PathNotFound error when processing reservation recommendation exports. The pipeline tries to read Parquet files from a path like:
ingestion/Recommendations/<year>/<month>/providers/microsoft.billing/billingaccounts/<id>/billingprofiles/<id>-reservationrecommendations-daily
The path does not exist in the storage account, causing the Get Existing Parquet Files activity to fail with:
ADLS Gen2 operation failed for: Operation returned an invalid status code 'NotFound'.
ErrorCode: 'PathNotFound'. Message: 'The specified path does not exist.'
This cascades into msexports_ExecuteETL and subsequently ingestion_ExecuteETL / ingestion_ETL_dataExplorer failures.
Steps to reproduce
- Deploy a FinOps hub with Fabric and recommendations enabled
- Have a Cost Management export configured for reservation recommendations
- Wait for the daily trigger to run the
msexports_ExecuteETL pipeline
Expected behavior
The pipeline should handle the case where the ingestion path does not yet exist (e.g., first run or no data from the export) gracefully, instead of failing with PathNotFound.
Environment
- FinOps toolkit version: 12 (deployed), 14.0-dev (source)
- Analytics backend: Microsoft Fabric
🤖 Generated with Claude Code
Bug description
The
msexports_ETL_ingestionpipeline fails with aPathNotFounderror when processing reservation recommendation exports. The pipeline tries to read Parquet files from a path like:The path does not exist in the storage account, causing the
Get Existing Parquet Filesactivity to fail with:This cascades into
msexports_ExecuteETLand subsequentlyingestion_ExecuteETL/ingestion_ETL_dataExplorerfailures.Steps to reproduce
msexports_ExecuteETLpipelineExpected behavior
The pipeline should handle the case where the ingestion path does not yet exist (e.g., first run or no data from the export) gracefully, instead of failing with
PathNotFound.Environment
🤖 Generated with Claude Code