It looks like '+' is being used for a special purpose internally which conflicts when the path contains a '+' character.
I'm attaching an LLM generated reproducer (but I did read and run it myself). This is an easy issue to work around but I thought I'd report it for completeness anyway. I ran into this because bazel will generate paths with a '+' in them.
test_klayout_plus_bug.py