Forum Discussion

girishtharwani2's avatar
girishtharwani2
Icon for Helper III rankHelper III
6 months ago
Solved

Environment save/publish fails with PbiApiError for snowflake-connector in Notebook

Title: Fabric Environment save/publish fails with PbiApiError when uploading correct Linux wheels for snowflake-connector-python

Hi team,

I’m facing an issue while trying to add snowflake-connector-python to a Fabric Environment in a restricted-network setup.

What I’m trying to do

I need to run a Fabric notebook/pipeline that imports:

import snowflake.connector
from cryptography.hazmat.primitives import serialization

Since inline %pip is disabled in pipeline runs, I’m trying to install the dependency through a Fabric Environment.

What I already tried

I followed the limited-network approach and prepared wheels externally.

Initially, I hit expected errors because of wrong wheels:

  • Windows wheels (win_amd64) → failed

  • Python 3.11 wheels on a Python 3.10 environment → failed

I then switched to Linux-compatible wheels downloaded from WSL.

Current issue

The Environment still fails during save/publish with PbiApiError, and the detailed log shows inconsistent runtime behavior.

In one attempt, I uploaded Python 3.11 wheels, but the log showed the environment was actually building on Spark 3.4 / Python 3.10:

  • libraryMetadata//Spark34/

  • base env references like chromadb==0.4.13=py310

and then failed with:

ERROR: snowflake_connector_python-4.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl is not a supported wheel on this platform.

So it looks like the runtime used during environment build does not match what I expected.

Wheels I uploaded

These are the wheels I used in the latest attempt:

asn1crypto-1.5.1-py2.py3-none-any.whl
boto3-1.42.96-py3-none-any.whl
botocore-1.42.96-py3-none-any.whl
certifi-2026.4.22-py3-none-any.whl
cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
cryptography-47.0.0-cp311-abi3-manylinux_2_34_x86_64.whl
filelock-3.29.0-py3-none-any.whl
idna-3.13-py3-none-any.whl
jmespath-1.1.0-py3-none-any.whl
packaging-26.2-py3-none-any.whl
platformdirs-4.9.6-py3-none-any.whl
pycparser-3.0-py3-none-any.whl
pyjwt-2.12.1-py3-none-any.whl
pyopenssl-26.1.0-py3-none-any.whl
python_dateutil-2.9.0.post0-py2.py3-none-any.whl
pytz-2026.1.post1-py2.py3-none-any.whl
requests-2.33.1-py3-none-any.whl
s3transfer-0.16.1-py3-none-any.whl
six-1.17.0-py2.py3-none-any.whl
snowflake_connector_python-4.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Questions

  1. How can I reliably determine which Python version/runtime Fabric is actually using during Environment build?

  2. If the Environment is Spark 3.4 / Python 3.10, should I prepare only cp310 wheels even if I expected Runtime 1.3?

  3. Is there a known issue where Environment save/publish throws PbiApiError before the configuration/runtime is fully reflected in the UI?

  4. Has anyone successfully installed snowflake-connector-python in a restricted-network Fabric Environment? If yes, could you share the exact runtime + wheel strategy?

Relevant log excerpt

libraryMetadata//Spark34/
...
The environment is inconsistent
...
ERROR: snowflake_connector_python-4.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl is not a supported wheel on this platform.

Any guidance would be appreciated.

  • Hello girishtharwani2 

     

    The Fabric runtime environment that will be used shows on the Runtime dropdown in the UI. Runtime 1.3 has Python 3.11 and Spark 3.5.5, whereas Runtime 1.2 has Python 3.10 and Spark 3.4.1. It looks like you are using Runtime 1.2. Please bear in mind you can upgrade you runtime at any time, but you'll need to republish after you have made changes. 

     

    Because you're running runtime 1.2 Python 3.10 you can't import a wheel tagged for Python 3.11. Please use runtime 1.3 with cp311 wheel and it should work. 

     

  • Thankyou, deborshi_nag and tayloramy for your responses.

    Hi girishtharwani2,

    We appreciate your inquiry through the Microsoft Fabric Community Forum.

    We would like to inquire whether have you got the chance to check the solutions provided by deborshi_nag and tayloramy to resolve the issue. We hope the information provided helps to clear the query. Should you have any further queries, kindly feel free to contact the Microsoft Fabric community.

    Thank you.

9 Replies

  • Hello girishtharwani2 

     

    The Fabric runtime environment that will be used shows on the Runtime dropdown in the UI. Runtime 1.3 has Python 3.11 and Spark 3.5.5, whereas Runtime 1.2 has Python 3.10 and Spark 3.4.1. It looks like you are using Runtime 1.2. Please bear in mind you can upgrade you runtime at any time, but you'll need to republish after you have made changes. 

     

    Because you're running runtime 1.2 Python 3.10 you can't import a wheel tagged for Python 3.11. Please use runtime 1.3 with cp311 wheel and it should work. 

     

      • deborshi_nag's avatar
        deborshi_nag
        Icon for Super User rankSuper User

        Try to offcial conda environment for Fabric runtime 1.3  - Fabric-Python311-CPU.yml

         

        Create environment and download using pip

         

        Step 1

        conda env create -n fabric13 -f Fabric-Python311-CPU.yml
        conda activate fabric13

         

        Step 2

        mkdir wheels
        pip download snowflake-connector-python==4.4.0 -d wheels 

         

        You can use Azure CLI bash shell to run the above commands - make sure you use Python 3.11 (Azure CLI comes with 3.12 by default). I could publish the wheels successfully using the above. 

         

  • Hi girishtharwani2,

    We are glad to know that your issue has been resolved. Should you have any further queries, kindly feel free to contact the Microsoft Fabric community.

    Thank you.

  • Hi girishtharwani2, 

     

    deborshi_nag is correct on the Python versions for the different runtimes. 

    Here's the documentation so you can check it yourself: 
    https://learn.microsoft.com/en-us/fabric/data-engineering/runtime-1-3

    https://learn.microsoft.com/en-us/fabric/data-engineering/runtime-1-2

    https://learn.microsoft.com/en-us/fabric/data-engineering/runtime-2-0

     

    On this page Microsoft provides the yml files that contain the exact libraries and versions included in the Fabric Runtime: https://learn.microsoft.com/en-us/fabric/data-engineering/environment-manage-library-with-outbound-access-protection

     

    It also walks through making a local enviornmnet that matches the libraries that Fabric uses. 

     

    I recommend following these steps to get the enviornment set up and then create the wheels to ensure you have correct versions of all dependencie. 

     

  • Thankyou, deborshi_nag and tayloramy for your responses.

    Hi girishtharwani2,

    We appreciate your inquiry through the Microsoft Fabric Community Forum.

    We would like to inquire whether have you got the chance to check the solutions provided by deborshi_nag and tayloramy to resolve the issue. We hope the information provided helps to clear the query. Should you have any further queries, kindly feel free to contact the Microsoft Fabric community.

    Thank you.