Why would we not have an `id`?  This looks like you're compensating for bugs in callers.  I get nervous when I see functions silently returning on error cases.