don't throw when provided non-string keys

pass an error to the callback instead