Skip to content

Listing failed entries throws NotRenderableError when given weird data #3239

@haegrr

Description

@haegrr

Expected behaviour:

A table of failed entries is shown.

Actual behaviour:

A NotRenderableError is thrown and no table is shown.

Steps to reproduce:

  • Create a task that fills the failed table with some weirdly formatted titles (in this case, a leading number and some whitespace).
  • Run flexget failed list.

The history and seen subcommands seem unaffected by this issue.

Config:

--- config from task: giant-bomb-unprofessional-fridays
accept_all: true
cookies: /data/cookies/giant-bomb.txt
exec:
  fail_entries: true
  on_output:
    for_accepted:
      - umask 002 && yt-dlp --config-location /data/youtube-dl.conf --cookies /data/cookies/giant-bomb.txt
        --output "/downloads/giant-bomb/Unprofessional Fridays/%(id)s - %(title)s.%(ext)s"
        "{{url}}"
html:
  increment:
    entries_count: 400
    from: 1
    to: 19
  links_re:
    - /(?:shows|videos)/
  url: https://www.giantbomb.com/api/show-episode/19801/?display_type=1&display_order=0&page={{i}}
manual: true

---

Log:

2021-11-20 12:59:30 DEBUG    manager                       Config file /data/config.yml selected
2021-11-20 12:59:30 DEBUG    manager                       sys.defaultencoding: utf-8
2021-11-20 12:59:30 DEBUG    manager                       sys.getfilesystemencoding: utf-8
2021-11-20 12:59:30 DEBUG    manager                       flexget detected io encoding: utf-8
2021-11-20 12:59:30 DEBUG    manager                       os.path.supports_unicode_filenames: False
There is a FlexGet process already running for this config, sending execution there.
2021-11-20 12:59:30 DEBUG    manager                       Sending command to running FlexGet process: ['-c', '/data/config.yml', '-L', 'debug', 'failed', 'list']
Traceback (most recent call last):
  File "/venv/bin/flexget", line 33, in <module>
    sys.exit(load_entry_point('FlexGet==3.1.153', 'console_scripts', 'flexget')())
  File "/venv/lib/python3.9/site-packages/FlexGet-3.1.153-py3.9.egg/flexget/__init__.py", line 44, in main
    manager.start()
  File "/venv/lib/python3.9/site-packages/FlexGet-3.1.153-py3.9.egg/flexget/manager.py", line 365, in start
    client.handle_cli(self.args)
  File "/venv/lib/python3.9/site-packages/rpyc/core/netref.py", line 240, in __call__
    return syncreq(_self, consts.HANDLE_CALL, args, kwargs)
  File "/venv/lib/python3.9/site-packages/rpyc/core/netref.py", line 63, in syncreq
    return conn.sync_request(handler, proxy, *args)
  File "/venv/lib/python3.9/site-packages/rpyc/core/protocol.py", line 473, in sync_request
    return self.async_request(handler, *args, timeout=timeout).value
  File "/venv/lib/python3.9/site-packages/rpyc/core/async_.py", line 102, in value
    raise self._obj
rpyc.core.vinegar/rich.errors.NotRenderableError: unable to render int; a string or other renderable object is required

========= Remote Traceback (1) =========
Traceback (most recent call last):
  File "/venv/lib/python3.9/site-packages/rpyc/core/protocol.py", line 324, in _dispatch_request
    res = self._HANDLERS[handler](self, *args)
  File "/venv/lib/python3.9/site-packages/rpyc/core/protocol.py", line 592, in _handle_call
    return obj(*args, **dict(kwargs))
  File "/venv/lib/python3.9/site-packages/FlexGet-3.1.153-py3.9.egg/flexget/ipc.py", line 94, in exposed_handle_cli
    self.manager.handle_cli(options)
  File "/venv/lib/python3.9/site-packages/FlexGet-3.1.153-py3.9.egg/flexget/manager.py", line 413, in handle_cli
    options.cli_command_callback(self, command_options)
  File "/venv/lib/python3.9/site-packages/FlexGet-3.1.153-py3.9.egg/flexget/components/failed/cli.py", line 11, in do_cli
    list_failed(options)
  File "/venv/lib/python3.9/site-packages/FlexGet-3.1.153-py3.9.egg/flexget/components/failed/cli.py", line 28, in list_failed
    table.add_row(
  File "/venv/lib/python3.9/site-packages/rich/table.py", line 422, in add_row
    raise errors.NotRenderableError(
rich.errors.NotRenderableError: unable to render int; a string or other renderable object is required

Additional information:

  • FlexGet version: 3.1.153
  • Python version: 3.9.5
  • Installation method: source
  • Using daemon (yes/no): yes
  • OS and version: Linux 5.4.0-77-generic #⁠86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 Linux
  • Link to crash log: N/A

Excerpt from db-config.sqlite failed table:

sqlite> SELECT * FROM failed;
1|93
          
        
        
        08/10/2018|https://www.giantbomb.com/shows/unprofessional-fridays-08102018/2970-11289|2021-11-20 04:21:32.709169|exec return code was non-zero|2|2021-11-20 05:51:32.709118
2|156
          
        
        
        01/24/2014|https://www.giantbomb.com/shows/unprofessional-fridays-01-24-2014/2970-13695|2021-11-20 03:58:42.054479|exec return code was non-zero|1|2021-11-20 04:58:42.054456
3|53
          
        
        
        (04/17/2019)|https://www.giantbomb.com/shows/04172019/2970-18994|2021-11-20 12:01:04.940715|exec return code was non-zero|1|2021-11-20 13:01:04.940689

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