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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions