Installation Troubleshooting

July 14, 2026 · View on GitHub

This page provides guidance on how to troubleshoot common issues that may arise when installing ethereum/execution-specs.

Problem: solc Installation issues

Problem: CERTIFICATE_VERIFY_FAILED

!!! danger "Problem: Failed to ... CERTIFICATE_VERIFY_FAILED" When running fill you might encounter the following error:

```bash
Exit: Failed to ...: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)>
```

=== "Ubuntu"

!!! success "Solution: Update your system’s CA certificates"
    On Ubuntu, run the following commands:

    ```bash
    sudo apt-get update
    sudo apt-get install ca-certificates
    ```

=== "macOS"

!!! success "Solution: Update your system’s CA certificates"
    On macOS, Python provides a built-in script to install the required certificates:

    ```bash
    /Applications/Python\ 3.11/Install\ Certificates.command
    ```

Problem: Exception: failed to compile yul source

!!! danger "Problem: Running fill on static_tests fails with tests that contain yul source code on ARM platforms" To resolve the issue you must acquire the solc binary e.g. by building solidity from source. The guide below installs v0.8.28 but you might prefer to choose a different version.

!!! success "Solution: Build solc from source" The following steps have been tested on Ubuntu 24.04.2 LTS ARM64: bash git clone --branch v0.8.28 --depth 1 https://github.com/ethereum/solidity.git cd solidity && mkdir build && cd build sudo apt install build-essential libboost-all-dev z3 cmake .. make mv $HOME/Documents/execution-specs/.venv/bin/solc $HOME/Documents/execution-specs/.venv/bin/solc-x86-64 cp ./solc/solc $HOME/Documents/execution-specs/.venv/bin/ chmod +x $HOME/Documents/execution-specs/.venv/bin/solc Running uv run solc --version should now return the expected version.

Problem: ValueError: unsupported hash type ripemd160

!!! danger "Problem: Running fill fails with tests that use the RIPEMD160 precompile (0x03)" When running fill, you encounter the following error:

```python
ValueError: unsupported hash type ripemd160
# or
ValueError: [digital envelope routines] unsupported
```

This is due to the removal of certain cryptographic primitives in OpenSSL 3. These were re-introduced in [OpenSSL v3.0.7](https://github.com/openssl/openssl/blob/master/CHANGES.md#changes-between-306-and-307-1-nov-2022).

!!! success "Solution: Modify OpenSSL configuration" On platforms where OpenSSL v3.0.7 is unavailable (e.g., Ubuntu 22.04), modify your OpenSSL configuration to enable RIPEMD160. Make the following changes in the OpenSSL config file:

```ini
[openssl_init]
providers = provider_sect

# List of providers to load
[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1
```

This will enable the legacy cryptographic algorithms, including RIPEMD160. See [ethereum/execution-specs#506](https://github.com/ethereum/execution-specs/issues/506) for more information.

Problem: VS Code "Autoformat on Save" with Ruff Not Working

!!! danger "Problem: 'Autoformat on Save' with Ruff not working as expected in VS Code" If you are using VS Code and "autoformat on save" is not working as expected, or if it produces different formatting than just lint, you may have a version mismatch with the ruff formatter. This problem can be confirmed if git diff shows changes to an otherwise unmodified file after you have saved it.

This issue often occurs when VS Code is not configured to use the project's virtual environment (`.venv`) or if the linting dependencies have not been installed. In this case, VS Code's Ruff extension falls back to a bundled version of `ruff`, which may not match the version pinned in the project's `pyproject.toml` file.

!!! success "Solution: Install all required dependencies and select the correct interpreter"

1.  Ensure all developer dependencies are installed:

    ```bash
    uv sync
    ```

2.  In VS Code, open the Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`) and select `Python: Select Interpreter`.

3.  Choose the interpreter located in the project's `.venv` directory. This ensures VS Code uses the correct `ruff` version from your project's environment.

Other Issues Not Listed?

If you're facing an issue that's not listed here, you can easily report it on GitHub for resolution.

Click here to report a documentation issue related to installation

Please include the following details in your report:

  1. The command that triggered the issue.
  2. Any relevant error messages or screenshots.
  3. Relevant version information from the output of uv run eest info (if running consume from within eest).