The issue seems to come from the code
if( res->len <= 0 ) { sub_ref(res->str); free(res); return 0; }
(i.e. a string/slice of length zero is treated as an error) in source_pikestring_make() in src/post_modules/Shuffler/a_source_pikestring.c.
Before 565043fae7f the return 0 was not there, which made the code return a freed struct instead. That change was made over 14 years ago...