Dreaded post-release exception bugs!
Posted: Fri Aug 19, 2022 4:50 pm
by AnnieTiamat
Hey folks - ages back I released a game, and in looking at it for a possible update, I was slammed by two bugs I had no idea how to fix, that never appeared in my own playthroughs.
#1 good ol "unsupported operand type(s) for +=: 'NoneType' and 'int'" (using the same scripting += I have dozens of times in the game with no issues
#2 dag-nasty "IOError: Couldn't find file '[NONSENSE]'" (and then CHAOS with rendering)
Looking through the clipboard output of each of these, I've no earthly idea what's causing them - my only advantage here is knowing how to trigger them. (And that ain't much)
I know the idea of helping sort through a codedump output is hardly exciting, but from what I can tell in searching for "unsupported operand" issues like this, there are solutions that seem easy, but a lot of posts like "NM I fixed it" or "do this" without showing HOW or WHY. If any kind soul is feeling up for helping me squash these bugs, I'm in your debt on the real!
Re: Dreaded post-release exception bugs!
Posted: Mon Aug 22, 2022 7:40 pm
by AnnieTiamat
I'm sorry, but an uncaught exception occurred.
While loading <'Twocolor' <'Image' '_theme_glow/gslider_thumb.png'> <Color #777777> <Color #777777> False>:
File "game/timer.rpy", line 162, in script
IOError: Couldn't find file '_theme_glow/gslider_thumb.png'.
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/timer.rpy", line 162, in script
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\ast.py", line 1450, in execute
choice = renpy.exports.menu(choices, self.set)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\exports.py", line 836, in menu
rv = renpy.store.menu(items)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\exports.py", line 1023, in display_menu
rv = renpy.ui.interact(mouse='menu', type=type, roll_forward=roll_forward)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\ui.py", line 278, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\core.py", line 2496, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\core.py", line 2850, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\core.py", line 1916, in draw_screen
renpy.config.screen_height,
File "renpy/display/render.pyx", line 416, in renpy.display.render.render_screen (gen\renpy.display.render.c:6685)
rv = render(root, width, height, 0, 0)
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\screen.py", line 618, in render
child = renpy.display.render.render(self.child, w, h, st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "renpy/display/accelerator.pyx", line 108, in renpy.display.accelerator.transform_render (gen\renpy.display.accelerator.c:2027)
cr = render(child, widtho, heighto, st - self.child_st_base, at)
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\behavior.py", line 1614, in render
thumb = render(self.style.thumb, thumb_dim, height, st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\im.py", line 478, in render
im = cache.get(self)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\im.py", line 200, in get
surf = image.load()
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\im.py", line 987, in load
surf = cache.get(self.image)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\im.py", line 200, in get
surf = image.load()
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\display\im.py", line 529, in load
surf = renpy.display.pgrender.load_image(renpy.loader.load(self.filename), self.filename)
File "C:\Games\Passenger\The_Passenger-1.1-all\renpy\loader.py", line 536, in load
raise IOError("Couldn't find file '%s'." % name)
IOError: Couldn't find file '_theme_glow/gslider_thumb.png'.
Windows-8-6.2.9200
Ren'Py 6.99.11.1749
The Passenger 1.1
Re: Dreaded post-release exception bugs!
Posted: Wed Sep 21, 2022 12:50 am
by AnnieTiamat
Weird - put it at the end of options and got this:
```
I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.
File "game/options.rpy", line 508: invalid syntax
define build.include_old_themes = True
^
Ren'Py Version: Ren'Py 8.0.3.22090809
Tue Sep 20 21:49:22 2022
```
Re: Dreaded post-release exception bugs!
Posted: Wed Sep 21, 2022 12:55 am
by AnnieTiamat
Whew, got another issue - good news is I managed to fix the previous ones, bad news is this jerk popped up again:
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/endings.rpy", line 1118, in <module>
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int'
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/script.rpyc", line 2707, in script call
File "game/endings.rpyc", line 1118, in script
File "renpy/ast.py", line 928, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "renpy/python.py", line 2245, in py_exec_bytecode
exec(bytecode, globals, locals)
File "game/endings.rpy", line 1118, in <module>
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int'
Windows-10-10.0.22000
Ren'Py 7.4.11.2266
The Passenger 1.2
Wed Sep 21 12:02:47 2022