Skip to content

Frequently Answered Questions

SickGear edited this page Feb 25, 2023 · 8 revisions

SickGear Wiki: Home | Reporting Issues | Frequently Answered Questions | Install Guides

Frequently Answered Questions (FAQ)

Usage

Issues

Other


How to change episode status when Sickgear is refusing

Manually changing episode status to "downloaded" (any quality) isn't allowed. Error log reports: Refusing to change status to downloaded because it's not snatched/downloaded/archived

Solution: First, change to "ignored" or "skipped", to be able to change to "downloaded" (any quality).

Background: The above two-step solution prevents a specific accidental episode deletion case.


"Illegal instruction" on older CPUs (~15+ years)

Fetched JSON data is parsed by the orjson library (if installed).

2023 May 27, Good news...
Simply update to orjson version 3.8.14 or newer to restore x86-64-v1 support.

2023 May 06
orjson version 3.8.11 breaks compatibility with older CPUs (reported from a NAS, and a Xeon x3230 user).

See the orjson project report here.

2023 Jun 03
To confirm that no broken orjson modules need to be uninstalled, with the user account that runs SG, run both...

  • python -m pip list --user (i.e. to list user Python modules)

To uninstall a broken orjson module, and clear pip cache, run from the user account cmdline...

  • python -m pip uninstall orjson
  • python -m pip cache remove orjson

Then do the same using sudo to remove system-wide module

  • sudo python -m pip list (i.e. to list system-wide Python modules)

To uninstall..

  • sudo python -m pip uninstall orjson
  • sudo python -m pip cache remove orjson

Running SG will prompt to update to the latest correct orjson and get back to normal state.


To use localhost or 127.0.0.1

Some systems refuse local connections to browser services using localhost, for example, the "Test SABnzbd" connection in SG may fail.

In this case, use 127.0.0.1 as the SABnzbd server URL instead.


SickGear (legacy) won't start with Python 3.11.2

This is the correct behavior from the old legacy installed version that supports Python 2 to 3.11.1.

Simply update SG or reinstall if you would like to continue with your existing data.

Another solution was added long ago and is the following post...

Background: There was a system in place to gracefully update a legacy SickGear if maintenance options were enabled. However, old SickGear installs missed out when not updated for months before updating Python to a version newer than what was supported during the sunset window. The legacy version deprecated Feb 9, 2023 was superseded by a new version that supports Python 3.8.2 to 3.12.x at the time of this writing.


How to update legacy SickGear with a new unsupported version of Python

It may be that trying to update legacy SickGear 0.xx.x to the 3.xx.x range can be refused by the legacy because it does not support a newer Python version released after the legacy base version was frozen.

The solution that may not require a manual git pull, is to try setting an env var called PYT to 1...

For example on Windows where SG is run without a parameters, use... set PYT=1 && C:\path\to\python.exe C:\path\to\sickgear.py && set PYT=

or with parameters,

set PYT=1 && C:\path\to\python.exe C:\path\to\sickgear.py --dateadir=c:\path\to\sg_data && set PYT=

for example,

set PYT=1 && C:\Python311\python.exe C:\apps\sickgear\sickgear.py --dateadir=c:\apps\sickgear_data && set PYT=

if this is too much bother, you can always manually update to the new main branch or reinstall (clone).


SickGear API docs

The SickGear API documentation is here


About processing media

If you fail to process a media file, and from the log you read...

"Must add show to SickGear before trying to post process an episode"

...and you do have the show, then the media you are trying to process does not match a show name known to SickGear. To fix, read... How to process/snatch a release with an alternative show name than that listed in SickGear


About importing shows

There is a smooth way to import existing show folders,

First, try to import only 1 show to gain a comfortable feeling of the process (menu Tools -> Import).

Next, scale up to 5 shows to gain an understanding of the time taken for importing with your set up.

Then go for a couple hundred shows at a time. Expect this to take some time because many image types are cached, timed interactions with tv info sources occur, and many other resource overheads are involved in the import process.

Throwing 1500 shows at this process is a bad idea that will most likely fail.


Extra scripts media process feature

2020, Feb 25

A huge thanks to @clinton-hall for notifying the community of exploit.

The good news is that SickGear does not contain any core logic added to and shared among the other forks. This means that bugs/issues are rarely shared with SickGear given the substantial differences, and the reported exploit hack illustrates exactly this point.

A bad actor required a publicly exposed internet facing Linux setup with no username and no password to be able to change the extra scripts option and download an attack/probe script. The published attack script searches for a specific pattern that is not found in SickGear, therefore, the attack does not activate where it does with the other forks.

However, as a proactive approach, SickGear disabled the extra scripts feature as of release 0.21.15 and user feedback gave it no substantial demand, so it is deprecated.


About changing something in bulk

This is one example to get you going, you may want to change the locations of media for many shows, this type of change is done using the menu item... Manage/Bulk Change.

In the "Bulk Change" page, select one or two shows, go to the page bottom, and click the "Edit" button.

On the "Edit" page, submit and check your change to gain a feel for the process, be aware that shows will take a time to refresh after a change.

Then, you can scale up to more shows once you feel comfortable that everything is as expected, if not, revert the changes with the one or two shows. It is far better to test this method than trying to make changes to 300 shows and then realising that the changes are not what you wanted, in short, test, check, and then action a true bulk change.


AttributeError: 'module' object has no attribute 'SYS_ENCODING'

Date: Fri 13th Mar 2020

Some installations/upgrades have been made from raw zip files instead of using recommended methods.

The recommended methods handle deleting and renaming files when updating. However, when zip files are used, some users have not first removed all existing files, therefore, install corruptions are created from files that should have been deleted, but are not.

This is clear to see because...

  1. An error will present with AttributeError: 'module' object has no attribute 'SYS_ENCODING'

and/or ...

  1. /sickbeard/encodingKludge.py should not exist

It is strongly recommended that the old installation folder is renamed something_old, and git is used to install into a new folder in order to get an installation that properly updates itself.

If you must only download zip files, then you must backup the db's + ini and delete the SG folder contents before extracting the new zip ... then readd the db's + ini (unless you use an external data dir for db and ini files with the --datadir startup param), otherwise expect errors when code is changed.


Stuck on Changing Kodi Nfo

Some systems have stuck during an update to fix Kodi nfo files instead of reaching 100%.

To get past this, make sure SickGear process is not running, then...

  1. Open a command prompt/shell, and change directory to the SickGear app
  2. Enter... git reset --hard origin/main
  3. Enter... git checkout -f --track -B main remotes/origin/main
  4. Start SickGear

If you never installed git, then reinstall SG with the steps you original took.


Fun with flags fanarts

On any display show page...

  1. ctrl + alt then press up (repeatedly) until you can fully see the fanart
  2. ctrl + alt then s (toggle Save rating mode)
  3. ctrl + alt then left/right
  4. ctrl + alt then a (mark fanart as to Avoid after exiting Save rating mode)

more keypress combo fun in the "other" tab of "edit show" (p.s. even better with say, 10 arts)


How to queue all the episodes in a season

  1. In a displayed show, click the check box at the top left of a season to select all of its episodes.
  2. Click the [Go] button to change seleted episodes to "Wanted", which will queue them for search.

How to use Cookies (e.g. TD, IPT, etc.)


What to look at when an episode is not found


Episode item remains "Snatched" and won't change to "Downloaded"

You must NOT set a client download folder anywhere near a show root folder as this will fail by design.


Cannot update SickGear, Git gives FETCH_HEAD error

Example error text... 'Your local changes to the following files would be overwritten by merge'

Reason; at least one SickGear source file has been modified, use the following commands...

On Windows or OS X
git stash
git stash drop
git pull
On Synology
  • Stop SG using Syno package tool
  • Remove current sourcecode
  • Fresh clone
  • Start SG using Syno package tool
cd /volume1/@appstore/sickbeard-custom/var
rm -Rf SickBeard
/volume1/@appstore/git/bin/git clone https://github.com/SickGear/SickGear.git SickGear
Other Systems or if the above fails
  • From commandline, in the SickGear folder run:
git reset --hard origin/main


Cannot switch branch

A failure to switch to the develop branch may be because there is 'not a git repository' - or - logs may produce the following output...

git checkout -f develop returned : error: pathspec 'develop' did not match any file(s) known to git

Possible reason: A local git repo was not yet properly set up for SickGear

Run the following commands to switch to use the SickGear repo...

cd to_base_path_of_sickgear_files

If the path above does not contain a .git directory (check with dir or ls -la), initialize a repo...

git init

Otherwise, continue here... (if the line below git remote rm origin reports "fatal: No such remote: origin", that's fine, just continue)

git remote rm origin
git remote add origin http://github.com/SickGear/SickGear.git
git pull -f origin
git checkout -f --track -B main remotes/origin/main
git checkout -f --track -B develop remotes/origin/develop

Roughly, what to expect in the display when running the above commands...

When you start SickGear, your files are the latest develop branch files - check the About/help page.

If the above fails, best that you follow steps to properly install SickGear.


Reverse proxy checklist

Guide: NGiNX SickGear reverse proxy

Note the config.ini file location shown on the About page.

  1. Navigate to and enable setting General/Interface/Web Interface/Reverse proxy headers
  2. Shutdown SG (to ensure the following changes are not ignored/reverted)
  3. Find and edit items in config.ini;
    • web_host=0.0.0.0 (0's make SG available on all interfaces, can specify an IP to bind to)
    • web_root="" (optional: prepend/require a root path e.g. "mysickgear" with all requests)
    • localhost_ip=[your LAN IP] deprecated
  4. Update web_root in \autoProcessTV\autoProcessTV.cfg to match the previous step (3)
  5. Start SG (if applicable; navigate to SG using your new web root)


Failed to unpack json data

On a log line just before the error log Failed to unpack json data is a line Failed to unpack archive, this can indicate a bad or no unrar binary. Go to config/media-process/File Handling, and click the box Unpack downloads if a red box appears with "Unrar Executable not found" then this is your issue, see the next section to install unrar, if not, then you have a bad unrar binary, so replace it.


Error: Rar Not Supported / Unrar Executable not found / Failed to unpack archive

SickGear has ability to unpack RAR archived releases but is distributed only with Windows UNRAR binary. If you get this error, download/extract and copy an unrar binary to one of your env "PATH=" folders (e.g. /usr/local/bin), then restart SG

UnRAR Binary for...

  • Windows x64 (64 bit): 6.22 - extract Trial package, copy freeware UnRar.exe
  • Windows x86 (32 bit): 6.22 - extract Trial package, copy freeware UnRar.exe
  • Linux x64: 6.22
  • Linux x32: 6.22
  • macOS x64: 6.22 - then chmod +x unrar in Terminal.
  • For other platforms: https://www.rarlab.com/rar_add.htm

Note; macOS 11 users must notarize unrar binary before SG can run it, see macOS install guide.


G.Chrome/Chromium issues

2019 Jul 29 .. Scroll the Daily Schedule calendar left/right renders strangely at around Version 75.0.3770.142
This issue has been observed on a several Chrome client variants e.g. Comodo Dragon 75.0.3770.100.

2019 Aug 05 .. confirmed Google Chrome Version 76.0.3809.87 fixes the issue
Still no update fix for Comodo Dragon


Drop down select is unreadable due to colours on G-Chrome?

2015 Oct 25... confirmed Google Chrome version 46.0.2490.80 was the first release to contain the fixed CSS code.

The drop down selectors in some place are incorrectly coloured on version 45 of the Chromium browser, the issue has been confirmed by the G developers and fixed for version 47. We suggest you use another browser until released (Sep 2015).

Further reading... Issue 526077


Update if UI not reachable

It can be that a system becomes corrupt and an update is required but the UI is not reachable. Some users prefer to update externally by using git or some other method. And some prefer to update inside SickGear, here are those steps...

  1. Shutdown SickGear if it is still running
  2. Locate the SickGear data folder
  3. Backup the three database files sickbeard.db, cache.db, and failed.db, and the text file config.ini
  4. Rename the three database files like... sickbeard.db_old, cache.db_old, and failed.db_old
  5. Start up SickGear, it will create three new empty database files
  6. Complete a software update using the SickGear menu item Check for Updates
  7. Shutdown SickGear
  8. Delete the three new empty database files
  9. Rename the old database files back as they were originally, e.g. sickbeard.db_old -> sickbeard.db etc.
  10. Start SickGear

Done.


Text based browsers may prevent normal startup

SickGear is designed to run with modern graphical browsers like Firefox, Chrome, Edge and IE. SickGear can open a webbrowser (unless disabled in settings) during its startup phase, however, it is known that text based browsers (i.e. w3m) can block SG from continuing its startup phase unless its console output is redirected. Tip: redirect console output to a file in order not to forfeit startup messages.


Connecting to rTorrent using SecureCGI

SG has been confirmed to work on a remote box to that of a rtorrent/rutorrent setup, the result of clicking [Test connection] was "Success: Connected and Authenticated".
Compatible with rTorrent version 0.9.7 and backwards to 0.8.1.

  • rTorrent must be compiled with xmlrpcenabled
  • In .rtorrent.rc for local connections set scgi_port = 127.0.0.1:5000 or for remote connections set scgi_port = 0.0.0.0:5000
  • rTorrent can run local to an SG install using scgi://localhost:5000/

(with thanks to Dominian and tehspede in IRC)


Can you add a provider?

Before raising a request, please check the following

  1. The provider must be an English written site providing English releases
  2. We require login access to maintain availability of private sites

Note: A provider may be rejected, or removed if considered dead or fails to uphold access for SG dev


Can other languages be supported?

Stability and new ideas is central to SickGear, any text addition or change would need work in every language known to SickGear, even for error messages. We cannot maintain even a fraction of what is required for other languages, and this also applies to finding content from other languages, English is the only language supported.


How to quickly set multiple snatched episodes as downloaded

This linked video shows how to,

  1. Target shows with status snatched episodes
  2. Quickly select multiple episodes and change status

Click for video guide


How to remove invalid season episodes (i.e. sync episodes with TV info source)

To purge invalid episode(s) that are not listed at the TV info source,

  1. Change selected episodes to 'Skipped' click [GO]
  2. Click [Force Full Update]

To protect from accidental or malicious data erasure, Force Full Update will not delete episodes without step 1.

Background (Why the episode is there)...

The episode is listed because at some point when the show was updated, the episode was fetched as a valid entry from the TV info source. The epsode was later removed from the source, however, SG protects against source abuse and will not simply remove items becuase this proved chaotic in the past. Therefore, you simply clean up as shown above.


Security improvements may affect media processing

Release 0.16.0 increases security.

Symptoms...

  • '_xsrf' argument missing from POST
  • "Verify and use correct username and password..."
  • XSRF cookie does not match POST argument

If switching to a new hostname/IP in a browser, cookies must be enabled for the new location to save configs.

If username and password is in use, the improvement will refuse insecure script access e.g. post processing, until scripts are updated.

Client setups that use a copy of /autoProcessTV/autoProcessTV.py in a location that is not SG installdir will be affected and that file will need to be replaced with the version in /autoProcessTV/. However, if a client script path setting points to SG installdir/autoProcessTV/ (as is best practice) then upgrading SG is all that's needed.

For the bright ones that read the last sentence with care, yes, if your client has scripts at one fixed location, then using symlinks (lin) or junction points (win) is optional but of great use here.

Bottom line: Third party scripts must never directly call the internal postProcess() function.

  • External scripts are welcome to interact with future proof /autoProcessTV/autoProcessTV.py


Browser navigation fails to a running SickGear

This can happen when trying to browse to SickGear using HTTPS (SSL) with a certificate that is now considered too weak. This can happen, for example, if cert is created with an old SSL lib, and now the new SSL lib refuses the old weak cert.

There will be an error in the log file at around the time the connection failed in the browser.

SSLError: [SSL: CA_MD_TOO_WEAK] ca md too weak ...

New certificate files need to be generated;

  • Note the install and data locations shown on the About page
  • Shutdown SickGear
  • Locate and delete 2 files; server.key and server.crt from the install or data folders
  • Start SickGear and two new files will be auto generated, browse as usual to https://...


How to exclude files from the SHOWQUEUE-REFRESH process

If you have DVD extras or videos that are reported as "No episode number found" or some error that doesn't really apply to your situation, then you may want to exclude them from the SHOWQUEUE-REFRESH process to prevent spamming the logs.

Simply, create a folder in the show folder called "Extras", e.g. \MyShow\Extras and move the files into there.


How to update if you see `"Local branch is ahead of . Automatic update not possible."`

  1. Note <branch name> in the error message for step (4).
  2. Shutdown SickGear
  3. Open a command prompt/shell and change directory to the SickGear app folder...
  4. Enter <branch name> as git reset --hard origin/main or git reset --hard origin/develop
  5. Start SickGear and click menu item "Check for Updates"


Example how to investigate what is happening during auto search


Gotchas of season packs

On any provider is a tip "best use: manually collect a season, disable after".

Unless for a one time search, it's strongly recommended to not enable season pack. If you insist to keep it on, read on...

Season packs do not reliably follow strict filenaming rules like those placed on episode scene releases. Rules allow SG to determine consistent outcomes where you can expect the same result every time.

For example, scene release episode names must be consistent, the quality labelled in a release must be correct, etc, etc. Because season packs are without rules, at some point, a pack will tamper with a show in negative way. You will then need to manually correct things. Also, no mechanisms exist to ban bad releases like the existing scene release "Nuke" system.

Here's a case that motivated this wiki entry,

User, "My SickGear downloaded a 'Season' pack before the season was over, so now thinks it has one of the episodes that hasn't been broadcast yet. What can I change the status of that episode to, so it will download when it's broadcast?"
Answer, "Change the status of the episode to 'Wanted'"

User, "Any way to prevent it from doing this on other shows in the future?"
Answer, "Disable both season search and fallback, for all providers"

Another user, "This answer doesn't address why ... etc. etc. etc."
Answer, "To list every side effect would be overkill, just follow the recommended use to be safe."


After upgrading OS, pre-existing setup fails to run

The upgraded OS was FreeBSD 12 with a new Python build that didn't migrate the dependancies used. The solution is to run from a prompt...

$ cd /path/to/sickgear/
$ pip install -r requirements.txt


What to check if "Test Plex Server" fails

Date: 21 Apr 2021
Release 0.23.x successfully tested fully working with PMS Version 1.22.2.4282, 1.21.1.3876, 1.18.3.2156, 1.18.1.1973, 1.17.0.1841, and 1.16.1.1291

In Plex, under /settings/the pms server/network/ (make sure to show advanced)

  • Set "Secure connections" = Preferred
  • Set "Preferred network interface" = your NIC IP instead of "Any"
  • Add IP(s) to "List of IP addresses and networks that are allowed without auth". localhost reported to fail, add NIC IPs (for example, 192.168.0.1) even if Plex is on the same machine as SG
    important: must not contain any spaces after any comma seperators
  • Ensure 2fa is not enabled

Also, be aware that Python may need to be explicitly allowed network access in a desktop firewall.


Unable to browse folders on Linux (Ubuntu) install

When trying to specify any folder location (Download folder location, post-processing folder location, current library folder location) the folder/navigation window opens and shows the correct root folder structure on the server.

However, when trying to navigate to a subfolder (clicking on a folder) only the root folder list is displayed. SG may only allow to specify a folder under the /root location.

This is the OS doing exactly as it is designed and controlling access to SickGear. The OS permissions need to be configured to allow SickGear access to other places.


Files not deleted OR [Errno 13] Permission denied

Show, file and folder deletion successes and failures are reported in the debug log and can give clues.

If files are not deleted or moved as expected, then there is a good chance that a permissions issue is the cause. *nix users are familiar with perms and can fix their file systems without issue.

However, Windows users can doubt perms is the root cause when the file was created without issue; that may be, perms can still be to blame. Therefore, the following can help...

  • takeown /? ... help and examples for taking file/folder ownership
  • takeown /R /F <folderpath> ... an example where folderpath could be C:\TV

Performing takeown will grant ownership to who you are currently logged in as. However, if SickGear runs under another account, then it still may not have permissions, and you will still receive [Errno 13] Permission denied. Therefore, the following should help:

  1. In File Explorer, right click the folder with the perms issue, select "Properties"
  2. Select the properties "Security" tab, then click the "Edit" button.
  3. Under the list "Group or user names", use the "Add" button.
  4. Type the text everyone into the box and click "OK" - "Everyone" will now be listed.
  5. Select "Everyone", the list "Permissions for Everyone" will become available.
  6. Click the box under "Allow" for "Full control" then "OK" and apply the new permissions.

The process that failed should now be fine.

Credit: @jstevenson72


SHOWDATAUPDATE - error

If hitting an error containing "sqlite3.OperationalError: near "WHERE": syntax error"

Likely that you are running a self build of Python with an old version of the sqllite3 lib that doesn't support the standard syntax used in official PY distros. Partial indexes have been supported in SQLite since 2013-08-26 ... so anything more recent is the min sqllite3 version to build with.


Python 2 + Python 3 roadmap


Handling bad media playback

A media file may result in bad a/v playback, or a filename mismatch e.g. filename is s02e16 but episode is not s02e16. You will want to quickly snatch another release.

Or, as asked in IRC, "How can I teach SG not to grab the bad release again ?"

  1. Navigate to the show, then the season and episode
  2. Click the "Search" magnify glass, and then "OK" when asked to "Mark download as bad and retry?"

The existing media file will be overwritten with a different release to any that are marked bad.

Tip: To display a menu Manage/Failed Downloads - enable config/Post Processing/Failed Downloads.


How to update the default download quality

  1. When adding a show, use button [Save as defaults] on the final step to persist the selected quality settings.
  2. For existing shows, use menu... Manage/Bulk Change -> Shift/Ctrl click select items -> use [Edit Selected] button -> set Quality -> use [Submit] button.

It's probably best to step through an example to learn about quality settings, e.g. for 1...

Selecting "SD", "HD720p", or "HD1080p" and then pressing "Save as defaults" will set related custom qualities as an initial "upgrade profile". Refresh the browser page and navigate back to the quality selection to observe the newly adopted profile. Now, to tune the saved default into, for example, a pure "SD" or "HDres" without upgrades, simply unselect the upgrade qualities, hit "Save as defaults" for a second time. After a page refresh, and you will now observe "SD", "HD720p", or "HD1080p" respectively (assuming all upgrades were deselected).

Setting "HD", "UHD2160p", or "Any" will not trigger a default set of custom upgrade qualities on save.

Selecting a quality(1) except "Custom", and then selecting "Custom" will present a profile based on the quality first(1) selected (a feature inherited from SickBeard).

Finally, if selected qualities are not saving, then check perms where the config.ini file is located as shown on the About page.


How to enable hevc/x265

  1. Browse to menu item ... config/Search ... "Media Search" tab
  2. Remove a) hevc and b) x265 from "Ignore result with any word"
  3. Save Changes

With hevc enabled (not in the list), hevc/x265 releases are preferred over x264 at the same quality.

Background: This format is included in the list because playback is not universally good enough to view the media. From 2015 to at least 2025, the majority of playback devices are x264 capable. That said, support for the newer format is added for those with capable playback hardware.


How to manual search at menu Manage/Episode Overview (Status)

On the episode status management page, click the checkbox next to the episode you want to "search", then "override checked status to" / "wanted" ... then click [Go] and a search will start for the selected item(s).


Why is SickGear better than "insert appname"

The question, though understandable, sucks given what it invokes in people.

To expand... Windows or Linux, Xbox or Playstation, Nintendo or Sega, Beta or VHS.

Opinions are like assholes, everyone knows one, and we're not into ripping into other peoples honest efforts.

Therefore, we won't be drawn into comparisons, use what you wanna use and enjoy.

We don't discuss features much anymore because people in the past requested SG features from other projects. Instead, people can discover for themselves, and in that process they learn SG deeper features.

SG is stable, reliable, and trusted, people like it, and have used it for a long time.


Clone this wiki locally