This is with pgf from git, checked out yesterday.
$ identify warped.jpeg
warped.jpeg JPEG 3092x3092 3092x3092+0+0 8-bit sRGB 4.09056MiB 0.000u 0:00.000
$ pgf -e -r -q 3 warped.jpeg warped.pgf
$ g++ -W -Wall -O3 -g --std=c++17 -o test_decode test_decode.cc -lpgf
$ ./test_decode warped.pgf tile1.rgb tile2.rgb
$ convert -depth 8 -size 387x387 tile1.rgb tile1.jpeg
$ convert -depth 8 -size 512x512 tile2.rgb tile2.jpeg
$ see tile1.jpeg # OK
$ see tile2.jpeg # Corrupted
Edit test_decode.cc to disable reading the first tile (#if)
$ g++ -W -Wall -O3 -g --std=c++17 -o test_decode test_decode.cc -lpgf
$ ./test_decode warped.pgf tile1.rgb tile2.rgb
$ convert -depth 8 -size 512x512 tile2.rgb tile2a.jpeg
$ see tile2a.jpeg # OK
Thanks to Phil!
Thanks, that does seem to resolve the issue.