return 404 if no category is found
do the heavy work outside of the locked method