[BUG] - Lidarr - Regex characters in album name cause album to be not found #45

Closed
opened 2026-02-20 00:14:05 -05:00 by deekerman · 2 comments
Owner

Originally created by @calebj on GitHub (Aug 27, 2023).

Originally assigned to: @RandomNinjaAtk on GitHub.

Application
Lidarr

Host platform
Docker on Linux

Script
Lidarr audio script

Script Version
2.12

Describe the bug
Regex characters in album title are not escaped, causing jq to error and album to be marked not found.

To Reproduce
Steps to reproduce the behavior:

  1. Monitor an album with a regex special character in the name (e.g. +)
  2. Wait for audio script to attempt Deezer search for the album
  3. See error in logs

Expected behavior
Special characters in an album name are not treated as regex

Logs/Screenshots

2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Starting Search...
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: Searching 1447147... (Track Count: 12-12)...
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: Filtering results by lyric type and "+Cl"...
jq: error (at <stdin>:54): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:216): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:234): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:252): Regex failure: target of repeat operator is invalid
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: 1 search results found
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: ERROR :: Albums found, but none matching search criteria...
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: ERROR :: Album not found...
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Explicit :: +Classics.exe :: Searching... (Track Count: 12-12)
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Explicit :: +Classics.exe :: 0 search results found
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Explicit :: +Classics.exe :: ERROR :: No results found via Fuzzy Search...
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: Searching 1447147... (Track Count: 12-12)...
2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: Filtering results by lyric type and "+Cl"...
jq: error (at <stdin>:18): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:36): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:72): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:90): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:108): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:126): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:144): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:162): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:180): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:198): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:270): Regex failure: target of repeat operator is invalid
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: 1 search results found
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: ERROR :: Albums found, but none matching search criteria...
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: ERROR :: Album not found...
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Clean :: +Classics.exe :: Searching... (Track Count: 12-12)
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Clean :: +Classics.exe :: 0 search results found
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Clean :: +Classics.exe :: ERROR :: No results found via Fuzzy Search...
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Album Not found
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Marking Album as notfound
2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Search Complete...

Additional context
For what it's worth, the album is titled "Classics.exe" (no +) in Deezer, which might cause issues by itself, but it does appear in search results. In this case, however, jq simply doesn't like the invalid pattern being given to test().

The problem is happening here: github.com/RandomNinjaAtk/arr-scripts@9e2b4f0774/lidarr/Audio.service.bash (L1452-L1454)

Manual reproduction:

data=$(cat /config/extended/cache/deezer/1447147-albums.json | jq -r .data[])
lidarrAlbumReleaseTitleFirstWord=+Cl
echo $data | jq -r "select(.explicit_lyrics=="true") | select(.title | test(\"^$lidarrAlbumReleaseTitleFirstWord\";\"i\")) | .id"

outputs

jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid
jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid
Originally created by @calebj on GitHub (Aug 27, 2023). Originally assigned to: @RandomNinjaAtk on GitHub. **Application** Lidarr **Host platform** Docker on Linux **Script** Lidarr audio script **Script Version** 2.12 **Describe the bug** Regex characters in album title are not escaped, causing `jq` to error and album to be marked not found. **To Reproduce** Steps to reproduce the behavior: 1. Monitor an album with a regex special character in the name (e.g. `+`) 2. Wait for audio script to attempt Deezer search for the album 3. See error in logs **Expected behavior** Special characters in an album name are not treated as regex **Logs/Screenshots** ``` 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Starting Search... 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: Searching 1447147... (Track Count: 12-12)... 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: Filtering results by lyric type and "+Cl"... jq: error (at <stdin>:54): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:216): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:234): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:252): Regex failure: target of repeat operator is invalid 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: 1 search results found 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: ERROR :: Albums found, but none matching search criteria... 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Explicit :: +Classics.exe :: ERROR :: Album not found... 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:24 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Explicit :: +Classics.exe :: Searching... (Track Count: 12-12) 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Explicit :: +Classics.exe :: 0 search results found 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Explicit :: +Classics.exe :: ERROR :: No results found via Fuzzy Search... 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: Searching 1447147... (Track Count: 12-12)... 2023-08-27 16:53:25 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: Filtering results by lyric type and "+Cl"... jq: error (at <stdin>:18): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:36): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:72): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:90): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:108): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:126): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:144): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:162): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:180): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:198): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:270): Regex failure: target of repeat operator is invalid 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: 1 search results found 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: ERROR :: Albums found, but none matching search criteria... 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Artist Search :: Deezer :: Clean :: +Classics.exe :: ERROR :: Album not found... 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Clean :: +Classics.exe :: Searching... (Track Count: 12-12) 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Clean :: +Classics.exe :: 0 search results found 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Fuzzy Search :: Deezer :: Clean :: +Classics.exe :: ERROR :: No results found via Fuzzy Search... 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:26 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Checking Lidarr for existing files 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: 0% Tracks found 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Album Not found 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Marking Album as notfound 2023-08-27 16:53:27 :: Audio :: 2.12 :: 3 :: missing :: 383 of 640 :: DotEXE :: +Classics.exe :: Album :: Search Complete... ``` **Additional context** For what it's worth, the album is titled "Classics.exe" (no +) in Deezer, which might cause issues by itself, but it does appear in search results. In this case, however, jq simply doesn't like the invalid pattern being given to test(). The problem is happening here: https://github.com/RandomNinjaAtk/arr-scripts/blob/9e2b4f0774e2822a01d0aaaa79c0d00ecd741ecc/lidarr/Audio.service.bash#L1452-L1454 Manual reproduction: ```sh data=$(cat /config/extended/cache/deezer/1447147-albums.json | jq -r .data[]) lidarrAlbumReleaseTitleFirstWord=+Cl echo $data | jq -r "select(.explicit_lyrics=="true") | select(.title | test(\"^$lidarrAlbumReleaseTitleFirstWord\";\"i\")) | .id" ``` outputs ``` jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid jq: error (at <stdin>:0): Regex failure: target of repeat operator is invalid ```
deekerman 2026-02-20 00:14:05 -05:00
Author
Owner

@RandomNinjaAtk commented on GitHub (Aug 28, 2023):

This is a good find, although I'm not sure what the best course of action would be to fix it... If you have any thoughts or ideas, I'm open to suggestions...

@RandomNinjaAtk commented on GitHub (Aug 28, 2023): This is a good find, although I'm not sure what the best course of action would be to fix it... If you have any thoughts or ideas, I'm open to suggestions...
Author
Owner

@RandomNinjaAtk commented on GitHub (Sep 7, 2023):

@calebj

Should be fixed in latest version...

@RandomNinjaAtk commented on GitHub (Sep 7, 2023): @calebj Should be fixed in latest version...
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/arr-scripts#45
No description provided.