why would we raise here? doesn't CacheControl raise in invalid inputs?