So I tried to flip back to latest tag, and it's all falling over again, and it's not consistent on the same program/season either.
I don't think it's a perms issue, either - the files all have same perms, it just creates a 0 byte file, and that is where it bombs out.
-rwx------ 1 me staff 101 Aug 3 06:47 S01E05.strmlnk
-rwx------ 1 me staff 111 Aug 3 06:47 S01E04.strmlnk
-rwx------ 1 me staff 106 Aug 3 06:47 S01E03.strmlnk
-rwx------ 1 me staff 106 Aug 3 06:47 S01E02.strmlnk
-rwx------ 1 me staff 105 Aug 3 06:47 S01E08.strmlnk
-rwx------ 1 me staff 109 Aug 3 06:47 S01E07.strmlnk
-rwx------ 1 me staff 112 Aug 3 06:47 S01E06.strmlnk
-rwx------ 1 me staff 0 Aug 3 06:51 S01E01.strmlnk
2026-08-03 06:51:16.886500: INFO: Creating Stream Link/File file(s) for 1923 (2022) | SHOW ...
Error with original path: [Errno 2] No such file or directory: '/app/channels_folder/Imports/TV/slm/1923 (2022)/Season 01/S01E01.strmlnk'
[error | 2026-08-03 06:51:16,888] - Exception on /tools_automation [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/slm.py", line 13523, in webpage_tools_automation
generate_stream_links(None)
File "/app/slm.py", line 14841, in generate_stream_links
create_stream_link_files(bookmarks, True, original_release_date_list)
File "/app/slm.py", line 15542, in create_stream_link_files
file_path_return = normalize_path(file_path_return)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/slm.py", line 17149, in normalize_path
return unicodedata.normalize('NFKC', path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: normalize() argument 2 must be str, not None
2026-08-03 06:51:16.895955: ERROR: Webpage responded... 500 INTERNAL SERVER ERROR