Skip to content

Custom track template without directory prefix silently fails all rips — no error output #692

Description

@HomelessPenguin

whipper version: 0.10.0-2ubuntu2 (Ubuntu Noble / Linux Mint 22.3)
OS: Linux Mint 22.3 Cinnamon (kernel 6.17.0-23-generic)
Drive: Asus DRW-24D5MT (offset +12, defeats_cache False). Also reproduced on LiteOn iHAS124 W (offset +98, defeats_cache True).

Summary

When --track-template does not include the same directory prefix as --disc-template, all tracks silently fail with "giving up on track N after 5 times". No error, traceback, or diagnostic output is produced between retry attempts. The failure is indistinguishable from a hardware or disc fault.

Steps to reproduce

Configure whipper with a working drive (offset set, cache analysed).
Insert a known-good audio CD.
Run:

whipper cd rip -W ~/WHIPPERRIPS
--disc-template '%A - %y - %d/%A - %y - %d'
--track-template '%t. %n'

Expected result

Tracks rip into the directory created by the disc template, named according to the track template.

Actual result

Every track fails silently after 5 attempts:

INFO:whipper.command.cd:ripping track 1 of 11: 01. Speed of Life.flac
INFO:whipper.command.cd:ripping track 1 of 11 (try 2): 01. Speed of Life.flac
INFO:whipper.command.cd:ripping track 1 of 11 (try 3): 01. Speed of Life.flac
INFO:whipper.command.cd:ripping track 1 of 11 (try 4): 01. Speed of Life.flac
INFO:whipper.command.cd:ripping track 1 of 11 (try 5): 01. Speed of Life.flac
CRITICAL:whipper.command.cd:giving up on track 1 after 5 times
("track can't be ripped. Rip attempts number is equal to %d", 5)

No traceback, no file-size mismatch warning, no cdparanoia error — nothing between the retry lines to indicate what went wrong.

Workaround

The track template must include the same directory prefix as the disc template:

Fails (no directory prefix in track template):

--disc-template '%A - %y - %d/%A - %y - %d'
--track-template '%t. %n'

Works (directory prefix matches):

--disc-template '%A - %y - %d/%A - %y - %d'
--track-template '%A - %y - %d/%t. %n'

Note that the default templates follow this pattern — both DEFAULT_DISC_TEMPLATE and DEFAULT_TRACK_TEMPLATE in cd.py share the %r/%A - %d/ prefix:

pythonDEFAULT_TRACK_TEMPLATE = '%r/%A - %d/%t. %a - %n'
DEFAULT_DISC_TEMPLATE = '%r/%A - %d/%A - %d'

However, nothing in the --help output, documentation, or validate_template() enforces or mentions this requirement.

Suggested fix

Either:

(a) validate_template() should verify that the track template's directory prefix matches the disc template's directory prefix and raise a clear error if they differ, or

(b) whipper should automatically prepend the disc template's directory prefix to the track template if the track template contains no /, or

(c) the underlying rip failure should produce a meaningful error message instead of silently retrying and failing.

At minimum, the --help text for --track-template should document that the directory prefix must match the disc template.

Impact

This consumed approximately 12 hours of debugging across multiple sessions and required purchase of a drive as part of problem-solving (the Asus). The silent failure with no diagnostic output led to three unnecessary drive swaps (LiteOn iHAS124 W, LG BH12LS38, LG GP60NB50, Asus DRW-24D5MT) before the template was identified as the cause. The failure pattern is identical to genuine hardware faults, making it extremely difficult to diagnose.

Personal Notes

I'm a novice user and am absolutely delighted that there's an equivalent to Exact Audio Copy available on linux. Thank you to the Whipperrip team.

This report, and my problem-solving, were by way of Claude AI at my request.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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