Frequently Asked Questions

This is a list of frequently asked questions regarding the Mesh Python SDK.

When trying to connect to a Volue Mesh server you might get some errors if things are not set up correctly.

I get a connection gRPC error.

failed to connect to all addresses

This error can have multiple causes. Some things to check are:

  1. Is the server address correct?

  2. Is the server port correct?

  3. Can you ping the host address?

  4. Is the server set up to run with gRPC enabled? For this please contact Volue consultant.

I get a SSL_ERROR_SSL. What am I doing wrong?

E0903 09:26:59.667000000 29912 src/core/tsi/ssl_transport_security.cc:1468] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.

If your server is set up to not use TLS and you try to connect using a secure connection you will get this error. Either change the server to use TLS (Configuration.Network.GRPC.EnableTLS(true)) or change you client code to connect without a secure connection.

I get a RESOURCE_EXHAUSTED gRPC error.

By default, gRPC limits the size of inbound messages to 4MB. There is no limit on outbound message size. From client side, the user can change those limits when creating a gRPC connection to Mesh. From Mesh server side, those limits are not configurable and the default values are used.

When the server receives too large message, it returns RESOURCE_EXHAUSTED and a message like “Received message larger than max (20000524 vs. 4194304)”.

When the client receives too large message, the client gRPC runtime returns RESOURCE_EXHAUSTED and a message like “CLIENT: Received message larger than max (20000524 vs. 4194304)”.

Refer to Mesh Python SDK gRPC communication for more information and suggested ways to address the issue.

I get error with building dependencies when installing volue.mesh on Linux.

This error can have multiple causes. Some things to check are:

  1. Is pip upgraded to the latest version?

  2. In particular if there is a problem with building wheel for kerberos dependency, make sure that libkrb5-dev, python3-dev and gcc are installed. For example:

sudo apt-get install libkrb5-dev python3.10-dev gcc

We are automatically verifying that Mesh Python SDK is working for all supported Python versions using GitHub Actions. Please take a look at the GitHub Action workflow file to see how are we preparing Windows and Ubuntu environments:

name: Usage

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

  workflow_dispatch:

jobs:
  checkout_and_use:
    # Only windows-2019 hosts have wsl enabled
    runs-on: windows-2019
    strategy:
      matrix:
        python-version: [3.9, "3.10", 3.11, 3.12]
      fail-fast: false
    timeout-minutes: 90

    steps:
      - uses: actions/checkout@v2
        with:
          path: repo
      - uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Checkout GitHub action
        uses: actions/checkout@v2
        with:
          repository: PowelAS/sme-run-mesh-service
          ref: master
          token: ${{ secrets.OAUTH_TOKEN }}
          path: .github/actions

      - name: Install and run Mesh server
        uses: ./.github/actions/
        id: download-mesh-server
        with:
          GITHUB_TOKEN: ${{ secrets.OAUTH_TOKEN }}
          MESH_SERVICE_TAG: 'v2.15.0.5'

      # run one example before installing pytest packages and pandas
      # to check if all dependencies are installed together with Mesh Python SDK pip package
      - name: Install and test Python SDK (Windows)
        run: |
          python -m pip install git+https://github.com/Volue-Public/energy-mesh-python@${{ github.ref }}
          python ./repo/src/volue/mesh/examples/get_version.py
          if ($LASTEXITCODE) { exit $LASTEXITCODE }
          python -m pip install pytest pytest-asyncio==0.21.2 pandas
          python -m pytest --pyargs volue.mesh.tests -m "not authentication and not long"

      - name: Install Ubuntu 22.04 (wsl1)
        uses: Vampire/setup-wsl@v1
        with:
          distribution: Ubuntu-22.04
          set-as-default: 'true'
          update: 'false'

      # run one example before installing pytest packages and pandas
      # to check if all dependencies are installed together with Mesh Python SDK pip package
      - name: Install and test Python SDK (Ubuntu 22.04)
        shell: wsl-bash {0}
        run: |
          sudo apt-get update
          sudo apt-get install --yes software-properties-common
          sudo add-apt-repository --yes ppa:deadsnakes/ppa
          sudo apt-get install --yes python${{ matrix.python-version }}
          sudo apt-get install --yes python${{ matrix.python-version }}-distutils
          curl -sS https://bootstrap.pypa.io/get-pip.py | python${{ matrix.python-version }}
          sudo apt-get install --yes libkrb5-dev gcc
          sudo apt-get install --yes python${{ matrix.python-version }}-dev
          python${{ matrix.python-version }} -m pip install --upgrade setuptools
          python${{ matrix.python-version }} -m pip install git+https://github.com/Volue-Public/energy-mesh-python@${{ github.ref }}
          python${{ matrix.python-version }} ./repo/src/volue/mesh/examples/get_version.py
          python${{ matrix.python-version }} -m pip install pytest pytest-asyncio==0.21.2 pandas
          python${{ matrix.python-version }} -m pytest --pyargs volue.mesh.tests -m "not authentication and not long"

Other

If neither of the above suggestions helped.

Mesh server gRPC configuration

Mesh server is configured by Volue consultants. In case of any configuration problems or change requests (like turning on authentication) please contact your Volue consultant.

I think I found a bug or I have a feature request.

If you believe you found a bug in the Mesh Python SDK or have any other suggestions, you should first read the discussion board and if that does not resolve your problem you should report the issue in as much detail as possible, preferably with a code example demonstrating the bug, in issue tracker.

I need more help.

If you have a more pressing issue or if your issue includes confidential information, you should contact Volue’s customer service.