don't return an error but a string on callback