Troubleshooting

This page contains tips for troubleshooting DipDup issues.

Update DipDup to the latest version

DipDup framework evolves rapidly just like Tezos itself does. We recommend keeping your project up-to-date with the latest version of DipDup.

If you're using Poetry, set caret version constraint in pyproject.toml to use the latest release of the current major version:

[tool.poetry.dependencies]
python = ">=3.10,<3.11"
dipdup = "^6"

pipx installations always use latest version.

Run dipdup update periodically to update to the latest version.

While building Docker images you can use X and X.Y tags to lock to specific major/minor releases:

FROM dipdup/dipdup:6

Ensure that config is correct

DipDup config can be correct syntactically but not necessarily semantically. It's especially easy to make a mistake when actively using templates and environment variables. Use config export command to dump config the way DipDup "sees" it, after resolving all links and templates. config env command can help you to find missing environment variables.

dipdup -c dipdup.yml -c dipdup.prod.yml config export
dipdup -c dipdup.yml -c dipdup.prod.yml config env

💡 SEE ALSO

Enable debug logging and crash reporting

More logs can give you a clue about the reason for an issue. Enable them in config:

logging: verbose

When an exception occurs DipDup saves crash dumps to /tmp/dipdup/crashdumps/XXXXXXX.json. You can send those dumps to Baking Bad automatically:

advanced:
  crash_reporting: True

Use linters to find errors in your Python code

Exceptions that occurred during callback execution are reraised as CallbackErrors. If you experience this issue, most likely your code is incorrect. Luckily, the Python ecosystem has lots of tools called linters to help you find mistakes. In DipDup we mostly use a combo of flake8 and mypy. You can start using both with zero configuration:

poetry add --with dev flake8 mypy
poetry run flake8
poetry run mypy

You can find a more complex example in DipDup's pyproject.toml or use the cookiecutter template to create a new project with all recommended bells and whistles (see 1. Quickstart → from-template).

Explore contract calls in Better Call Dev

Better Call Dev is a blockchain explorer for Tezos smart contracts. It provides a more human-friendly interface than TzKT to explore exact contract calls and parameter/storage structures.

BCD

Try it out when writing index definitions.

Packaging issues

Poetry package manager we recommend using with DipDup is not the most stable software in the world. If you experience issues with it like SolverProblemError, try the following:

  • Remove .venv and poetry.lock from the project root
  • Remove ~/.cache/pypoetry and ~/.cache/pip/ directories
  • Run poetry install and hope for the best.

Got stuck? Ask for help

We are always ready to answer your questions!

If you think you've found a bug, please report it directly to the GitHub Issues. For all other discussions, join our socials: