the fetch callback can't return -1 because size_t is unsigned