Unanticipated UnicodeDecodeError raised during call to PIL.Image.open

When the below code is run, a UnicodeDecodeError is raised when attempting to raise a ValueError with a descriptive message to the user. This occurs in _read_token at line 97 in PpmImagePlugin.py.

Minimal Reproducer

import sys
import io
import PIL.Image

d = io.BytesIO(b'P3\x0cAAAAAAAAAA\xee')
PIL.Image.open(d)

Version Info

11.2.1

Traceback Report

  File "rep.py", line 6, in <module>
    PIL.Image.open(d)
  File "lib/python3.10/site-packages/PIL/Image.py", line 3551, in open
    im = _open_core(fp, filename, prefix, formats)
  File "lib/python3.10/site-packages/PIL/Image.py", line 3539, in _open_core
    im = factory(fp, filename)
  File "lib/python3.10/site-packages/PIL/ImageFile.py", line 147, in __init__
    self._open()
  File "/lib/python3.10/site-packages/PIL/PpmImagePlugin.py", line 119, in _open
    self._size = int(self._read_token()), int(self._read_token())
  File "lib/python3.10/site-packages/PIL/PpmImagePlugin.py", line 97, in _read_token
    msg = f"Token too long in file header: {token.decode()}"
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xee in position 10: unexpected end of data