sruehl avatar image
0 Votes"
sruehl asked sruehl edited

Synapse SQL Serverless error: 'WaitIOCompletion call failed. HRESULT = 0x8007000C'


we get the following error when running a query to our Synapse SQL Serverless database:

Error handling external file: 'WaitIOCompletion call failed. HRESULT = 0x8007000C'. File/External table name: '<redacted: path to file on storage account>'.

This error occurs when querying a view which uses OPENROWSET, e.g.:

         DATA_SOURCE = 'AzureDataLakeStoreV2',
         FORMAT = 'PARQUET'
 ) t

The folder in the storage account contains several parquet files in subfolders, all files with the same structure.
Managed identify authentication is used for the data source.

I am not able to find any information about when 'WaitIOCompletion call failed' can occur.

Following discovering have been made:
- When recreating the view the query runs fine afterwards
- Still, after updating data in the storage account, the error occurs again
- Other views/queries work just fine
- We have different identical environments on which the problem does not occur (obviously there has to be a difference somewhere, still Synapse environments are configured in the same manner)
- When running this query outside of Synapse Studio with a user authenticated by AD Authentication the query also works fine -> seems like there is something going on with the managed identity authentication
- Recreating external data source and scoped credential did not solve the problem.
- Recreating the folder structure in the storage account was also of no prevail

I can provide more information about our setup if required.
Thanks for your help.

· 4
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi @sruehl,

Welcome to Microsoft Q&A forum and thanks for reaching out.

Yes, looks like something specific to Managed Identity. For immediate assistance and deeper analysis, if you have a support plan, could you please file a support ticket. Else please let us know here so that we can work with you offline in creating a support ticket for this.

In case if you have already filed a support ticket, please do share it here so that we can track it internally.

Thank you

0 Votes 0 ·

Hi @sruehl,

We still have not heard back from you. Just wanted to check if you are still facing the issue or need assistance on this? In case If you already found a solution, would you please share it here with the community? Otherwise, let us know and we will continue to engage with you on the issue.

In case if you have already filed a support ticket could you please share the SR# with us for tracking it internally?

Thank you

0 Votes 0 ·
sruehl avatar image sruehl KranthiPakala-MSFT ·

Hi, yes there is a support ticket: #2108110050000804.

I will update this post as soon as the issue is resolved.

General remark:
It would be nice to be able to lookup the reason behind error messages and their meaning somewhere or at least get some general hints. When looking up the mention error message I was not able to find anything anywhere.

0 Votes 0 ·
Show more comments

1 Answer

sruehl avatar image
0 Votes"
sruehl answered sruehl edited

We resolved the issue by recreating the Synapse Serverless database inlc. recreation of the database MASTER KEY. Since then the issue did not occur again, but the underlying reason is still unclear.

It may be the case that recreating the MASTER KEY is sufficient to get rid of the issue, we just recreated the database using our infrastructure scripts and did not test it independently. As mentioned in the original issue description, recreation of other elements (e.g. scoped credential) was not sufficient.

While debugging we also discovered that the error message sometimes changed to

Error: handling external file: 'Invalid: Parquet magic bytes not found in footer. Either the file is corrupted or this is not a parquet file.'. File/External table name: <path to file>

when running the query in Synapse. It was not possible to make out a deterministic behaviour for when which error message will be displayed.

5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.