microsoft / microsoft/finops-toolkit
OLE DB Type Mismatch in Costs query during Power BI refresh of FinOps Hub data
@santiagoamado0209 is already working on this.
Since Sep 8, 2026.
- Dominant language
- PowerShell
- Stars
- 603
- Forks
- 248
- Avg merge
- 7d 11h
- Merged PRs (30d)
- 11
Description
🐛 Problem
While refreshing the FinOps Toolkit Power BI report connected to a FinOps Hub deployment, the Costs query fails with:
OLE DB or ODBC error:
Type mismatch.
(Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
The issue is inconsistent and appears to depend on the amount of historical data being processed.
I followed the guidance from issue #2158 regarding x_SkuTerm, but I am still unable to identify the actual root cause.
During troubleshooting I also discovered references to older parquet execution IDs that appeared inconsistent with the current export manifests.
At this point I cannot determine whether the issue is related to:
x_SkuTerm type handling
Specific Marketplace/SaaS purchase records
Historical export runs present in the storage account
Data quality issues in specific months
Another transformation inside the Costs query
👣 Repro steps
Deploy FinOps Hub and configure FOCUS exports to ADLS Gen2.
Download the current Power BI report from FinOps Toolkit.
Connect the report to the Hub storage account.
Refresh the dataset.
Observe failure in the Costs query.
Additional observations:
Refreshing August 2026 only succeeds.
Refreshing the full year fails.
The exact same report behaves differently depending on the selected time range.
🤔 Expected
The report should refresh successfully regardless of the selected historical range.
The Costs query should consistently process Marketplace, SaaS, Reservation and Consumption records without generating OLE DB type mismatch errors.
📷 Screenshots
I can provide:
Original OLE DB error
Parquet-related error messages
Sample failing Marketplace rows
Query editor screenshots
Storage structure screenshots
if needed.
🔧 Environment
FinOps hub version: Latest available version V14
Billing account type: EA (Enterprise Agreement)
Power BI report type: Storage-based
Cost Management export: FOCUS
ℹ️ Additional context
Initial failure
The refresh failed with:
Costs
OLE DB or ODBC error:
Type mismatch.
(Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
Troubleshooting performed
- Followed Issue #2158
I modified the Costs query following the guidance from Issue #2158.
Originally:
{"x_SkuTerm", Int64.Type}
was changed to: {"x_SkuTerm", type text}
to support values such as:
1Year
3Years
5Years
The refresh issue persisted.
- Investigated storage contents
While troubleshooting I identified references to parquet files such as:
77c718bb-53fd-4ca3-a915-ddb5b6e4aa44__part_1_0001.snappy.parquet
and observed failures referencing this execution ID.
As a troubleshooting step, I temporarily excluded files associated with this execution ID. This changed the refresh behavior, although I was unable to determine whether that execution ID was directly related to the root cause.
- Reverted x_SkuTerm
As another test, I reverted:
{"x_SkuTerm", type text}
back to:
{"x_SkuTerm", Int64.Type}
After doing this, August 2026 loaded successfully.
However, because several changes were tested during the investigation, I cannot confidently state which change influenced the result.
Current status
✅ Storage connectivity works
✅ FinOps Hub ingestion works
✅ focuscost dataset loads
✅ August 2026 refresh completes
✅ The model can process over one million records
❌ Full year refresh still fails
❌ Root cause remains unknown
❌ OLE DB Type Mismatch still occurs when larger historical ranges are loaded
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.