Skip to content

Bug: Errors arent caught on multiple levels #6217

@til2000

Description

@til2000

During import of some files but not all, beets looks up information at a wrong place.

I was able to mitigate the issue by removing hardlink: yes from the config.yaml.

Problem

beets runs into an unhandled error while looking at a wrong (not original) location
Running this command in verbose (-vv) mode:

root@beets:~ # ls -la ~/beetsDebug10/01_undo_-_mirroraball_\(the_youngsters_rmx\)/Mirrorball\ Remixes/emp.mp3 
-rwxr-xr-x  1 root  wheel  9105408 Dec 15 21:03 /root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3
root@beets:~ # beet --plugins= version & beets -vv import ~/beetsDebug10/01_undo_-_mirroraball_\(the_youngsters_rmx\)/Mirrorball\ Remixes/emp.mp3
[1] 15266
user configuration: /root/.config/beets/config.yaml
data directory: /root/.config/beets
plugin paths: []
Loading plugins: 
Sending event: pluginload
library database: /root/.config/beets/library.db
library directory: /media/music
Sending event: library_opened
beets version 2.5.1
Python version 3.11.13
no plugins loaded
Sending event: import_begin
Sending event: import_task_created
Sending event: import_task_start
Looking up: /root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3
Item search terms: 01_undo_-_mirroraball_(the_youngsters_rmx) - emp
Found 0 candidates.

/root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3
Importing as-is.
Sending event: import_task_choice
found duplicates: [2862]
default action for duplicates: m
Sending event: import_task_start
Looking up: /root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3; /media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3
Tagging 01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes
No album ID found.
Search terms: 01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes
Album might be VA: False
Evaluating 0 candidates.

/root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3
/media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3 (2 items)
Sending event: import_task_before_choice
Importing as-is.
Sending event: import_task_choice
found duplicates: [259]
default action for duplicates: m
Sending event: import_task_start
Looking up: /root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3; /media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.4.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.8.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.9.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.5.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.6.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.7.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.1.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.2.mp3; /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.mp3; /music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3
Tagging 01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes
No album ID found.
Search terms: 01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes
Album might be VA: False
Evaluating 0 candidates.

/root/beetsDebug10/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/emp.mp3
/media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.4.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.8.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.9.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.5.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.6.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.7.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.1.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.2.mp3
/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.mp3
/music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3 (12 items)
Sending event: import_task_before_choice
Importing as-is.
Sending event: import_task_choice
Replacing item 2862: /media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2852: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.4.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2853: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.8.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2854: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.9.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2855: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.5.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2856: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.6.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2857: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.7.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2858: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.1.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2859: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.2.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2860: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.mp3
Sending event: database_change
Sending event: item_removed
Replacing item 2861: /music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3
Sending event: database_change
Sending event: database_change
Sending event: album_removed
Sending event: item_removed
11 of 12 items replaced
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Reimported item 2853. Preserving attribute ['added']. Path: /media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3
Reimported item 2853. Preserving flexible attributes []. Path: /media/music/Non-Album/01_undo_-_mirroraball_(the_youngsters_rmx)/emp.mp3
Sending event: database_change
Reimported item 2854. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.4.mp3
Reimported item 2854. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.4.mp3
Sending event: database_change
Reimported item 2855. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.8.mp3
Reimported item 2855. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.8.mp3
Sending event: database_change
Reimported item 2856. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.9.mp3
Reimported item 2856. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.9.mp3
Sending event: database_change
Reimported item 2857. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.5.mp3
Reimported item 2857. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.5.mp3
Sending event: database_change
Reimported item 2858. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.6.mp3
Reimported item 2858. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.6.mp3
Sending event: database_change
Reimported item 2859. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.7.mp3
Reimported item 2859. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.7.mp3
Sending event: database_change
Reimported item 2860. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.1.mp3
Reimported item 2860. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.1.mp3
Sending event: database_change
Reimported item 2861. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.2.mp3
Reimported item 2861. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.2.mp3
Sending event: database_change
Reimported item 2862. Preserving attribute ['added']. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.mp3
Reimported item 2862. Preserving flexible attributes []. Path: /media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.mp3
Sending event: database_change
Reimported item 2863. Preserving attribute ['added']. Path: /music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3
Reimported item 2863. Preserving flexible attributes []. Path: /music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'albumtype_soundtrack', fast=True), SubstringQuery('title', 'albumtype_soundtrack', fast=True), SubstringQuery('comments', 'albumtype_soundtrack', fast=True), SubstringQuery('album', 'albumtype_soundtrack', fast=True), SubstringQuery('albumartist', 'albumtype_soundtrack', fast=True), SubstringQuery('genre', 'albumtype_soundtrack', fast=True)])])
Parsed sort: NullSort()
Sending event: before_item_moved
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/beets/util/__init__.py", line 504, in move
    os.replace(syspath(path), syspath(dest))
FileNotFoundError: [Errno 2] No such file or directory: '/music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3' -> '/media/music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/00 emp.2.mp3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/beets", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/lib/python3.11/site-packages/beets/ui/__init__.py", line 1713, in main
    _raw_main(args)
  File "/usr/local/lib/python3.11/site-packages/beets/ui/__init__.py", line 1692, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/usr/local/lib/python3.11/site-packages/beets/ui/commands.py", line 1378, in import_func
    import_files(lib, byte_paths, query)
  File "/usr/local/lib/python3.11/site-packages/beets/ui/commands.py", line 1322, in import_files
    session.run()
  File "/usr/local/lib/python3.11/site-packages/beets/importer/session.py", line 234, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/usr/local/lib/python3.11/site-packages/beets/util/pipeline.py", line 468, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/usr/local/lib/python3.11/site-packages/beets/util/pipeline.py", line 380, in run
    self.coro.send(msg)
  File "/usr/local/lib/python3.11/site-packages/beets/util/pipeline.py", line 192, in coro
    task = func(*(args + (task,)))
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/beets/importer/stages.py", line 297, in manipulate_files
    task.manipulate_files(
  File "/usr/local/lib/python3.11/site-packages/beets/importer/tasks.py", line 480, in manipulate_files
    item.move(operation)
  File "/usr/local/lib/python3.11/site-packages/beets/library/models.py", line 1154, in move
    self.move_file(dest, operation)
  File "/usr/local/lib/python3.11/site-packages/beets/library/models.py", line 1038, in move_file
    util.move(self.path, dest)
  File "/usr/local/lib/python3.11/site-packages/beets/util/__init__.py", line 516, in move
    with open(syspath(path), "rb") as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/music/iTunes/iTunes Media/Music/01_undo_-_mirroraball_(the_youngsters_rmx)/Mirrorball Remixes/01_undo_-_mirroraball_(the_youngsters_rmx) - Mirrorball Remixes - emp.mp3'
[1]  + Done                          beet --plugins= version
root@beets:~ # 
[0] 0:csh*                                                                                                                                                                      "freenas.local" 21:04 15-Dec-25


Setup

  • OS:
root@beets:~ # cat /etc/os-release 
NAME=FreeBSD
VERSION="13.5-RELEASE-p6"
VERSION_ID="13.5"
ID=freebsd
ANSI_COLOR="0;31"
PRETTY_NAME="FreeBSD 13.5-RELEASE-p6"
CPE_NAME="cpe:/o:freebsd:freebsd:13.5"
HOME_URL="https://FreeBSD.org/"
BUG_REPORT_URL="https://bugs.FreeBSD.org/"
root@beets:~ # 

  • Python version:
  • beets version:
root@beets:~ # beets version
beets version 2.5.1
Python version 3.11.13
plugins: convert, duplicates, embedart, fetchart, replaygain, scrub, web
  • Turning off plugins made problem go away (yes/no): no

My configuration (output of beet config) is:

# root@beets:~ # cat ~/.config/beets/config.yaml 
directory: /media/music
library: ~/.config/beets/library.db
logging:
    level: DEBUG
    

# ------------------------------------------------------------------
import:
    move: yes          
    copy: no
    hardlink: yes        
    assume_album: yes
    singletons: yes
    none_rec_action: asis
    duplicate_action: merge
    incremental: yes
    incremental_skip_later: yes
    write: yes
    languages: [en]
    auto: yes

acoustid:
    apikey:  ...

match:
    strong_rec_thresh: 0.30      
    medium_rec_thresh: 0.10
    preferred:
        countries: ['US', 'GB|UK', 'DE']
        media: ['CD', 'Digital Media|File']
        original_year: yes

# ------------------------------------------------------------------
paths:                  
    default: $albumartist/$album%aunique{}/$track $title
    comp: Compilations/$album/$track $title
    singleton: Non-Album/$artist/$title
    albumtype_soundtrack: Soundtracks/$album/$track $title

plugins: []

PS
as I did a re-run with hardlink removed, I did run into the identical final error message, just occurring out of the ReplayGain plugin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions