If I use jupyterlab for my text editor, it creates some cache files like pages/.ipynb_checkpoints/my_page.py. When dash scans the pages directory for .py files, these get included, resulting in Duplicate Callback errors. I imagine similar things can happen with other text editors too.
Is there an easy way to exclude hidden files and folders from the scan?
It does search for .py files recursively, so it’s possible to have nested folders. It does also exclude files that start with a period or an underscore. Not sure why this isn’t working for you. Are you using JupyterDash ?