Skip to content

Unhandled exception in screen rendering #564

@bronikowski

Description

@bronikowski

I was using toot tui to catch up on my timeline, when scrolling past a single toot I get an exception in screen rendering function. The toot in question that brings it down: https://101010.pl/@byte/115701468025286176

Server: GoToSocial
Toot version: 0.51.0

The stack:

  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/event_loop/main_loop.py", line 645, in
 entering_idle                                              
    self.draw_screen()                                      
    ~~~~~~~~~~~~~~~~^^                                                                                                     File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/event_loop/main_loop.py", line 662, in
 draw_screen                                                                                                             
    canvas = self._topmost_widget.render(self.screen_size, focus=True)                                                     File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                                                                                  
    canv = fn(self, size, focus=focus)
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/frame.py", line 472, in render
    body = self.body.render((maxcol, maxrow - ftrim - htrim), focus and self.focus_part == "body")                       
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                     
    canv = fn(self, size, focus=focus)
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/columns.py", line 996, in rende
r                                                                                                                            w.render(w_size, focus=focus and self.focus_position == i),                                                          
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                           
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                     
    canv = fn(self, size, focus=focus)                                                                                     File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/padding.py", line 306, in rende
r                                                           
    canv = self._original_widget.render((maxcol, *size[1:]), focus)                                                        File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                                                                                  
    canv = fn(self, size, focus=focus)                      
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/frame.py", line 472, in render 
    body = self.body.render((maxcol, maxrow - ftrim - htrim), focus and self.focus_part == "body")
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                     
    canv = fn(self, size, focus=focus)                                                                                     File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/toot/tui/scroll.py", line 363, in render    
    return ow.render(size, focus)                           
           ~~~~~~~~~^^^^^^^^^^^^^                           
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                     
    canv = fn(self, size, focus=focus)                      
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/toot/tui/scroll.py", line 61, in render         canv_full = ow.render(ow_size, focus)                                                                                
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                                                                                      canv = fn(self, size, focus=focus)                                                                                   
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/padding.py", line 306, in rende
r                                                           
    canv = self._original_widget.render((maxcol, *size[1:]), focus)                                                     
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached
_render                                                                                                                  
    canv = fn(self, size, focus=focus)                      
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/pile.py", line 898, in render

    canv = fn(self, size, focus=focus)                                                                            [0/107]
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/pile.py", line 898, in render  
    canv = w.render(w_size, focus=focus and item_focus)                                                                  
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached_render                                                                                                                  
    canv = fn(self, size, focus=focus)                                                                                   
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/pile.py", line 898, in render  
    canv = w.render(w_size, focus=focus and item_focus)     
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/widget/widget.py", line 112, in cached_render                                                                                                                  
    canv = fn(self, size, focus=focus)                      
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/toot/urwidgets/text_embed.py", line 298, in render                                                                                                                   
    partial_canv, tail = self._uw_embed(                                                                                 
                         ~~~~~~~~~~~~~~^                    
        line, line_canv, embedded_iter, focus                                                                            
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                            
    )                                                                                                                    
    ^                                                       
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/toot/urwidgets/text_embed.py", line 496, in _uw_embed                                                                                                                
    return urwid.CanvasJoin(canvases), tail                 
           ~~~~~~~~~~~~~~~~^^^^^^^^^^                       
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/canvas.py", line 1268, in CanvasJoin  
    composite_canvas.pad_trim_left_right(0, pad_right)      
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^      
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/canvas.py", line 780, in pad_trim_left_right                                                                                                                   
    shards = shards_trim_sides(shards, trim_left, cols)                                                                  
  File "/home/emil/.local/share/pipx/venvs/toot/lib/python3.13/site-packages/urwid/canvas.py", line 1105, in shards_trim_sides                                                                                                                    
    raise ValueError(cols)                                                                                               
ValueError: 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions