DBCC Error for missing object ID

SQL 2017

getting a DBCC CHECKDB error for object that doesn't exist in the database. How do I resolve this?

DBCC CHECKDB ([dbname]) WITH NO_INFOMSGS, ALL_ERRORMSGS

results:
Msg 2576, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:27824) in object ID 663777522, index ID 1, partition ID 72057594597212160, alloc unit ID 72057594633715712 (type In-row data), but it was not detected in the scan.
Msg 2576, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:26672) in object ID 663777522, index ID 2, partition ID 72057594597277696, alloc unit ID 72057594633781248 (type In-row data), but it was not detected in the scan.
Msg 2576, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:41720) in object ID 663777522, index ID 3, partition ID 72057594597343232, alloc unit ID 72057594633846784 (type In-row data), but it was not detected in the scan.
Msg 2576, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:91112) in object ID 663777522, index ID 4, partition ID 72057594597408768, alloc unit ID 72057594633912320 (type In-row data), but it was not detected in the scan.
CHECKDB found 4 allocation errors and 0 consistency errors in table '(Object ID 663777522)' (object ID 663777522).
CHECKDB found 4 allocation errors and 0 consistency errors in database xxx.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (dbname).

Checked sys.sysobjects, sys.indexes, and sys.internal_tables for the object ID and couldn't find it.

SELECT * FROM sys.internal_tables
WHERE name = object_NAME (663777522)

SELECT * FROM sys.objects
WHERE name = object_NAME (663777522)

select object_name(object_id) as TableName, name as IndexName
from sys.indexes
where object_id = 663777522 and index_id = 1

Any ideas?

Actually database is SQL 2008R2 running in SQL 2005 compatibility

Do you have good backups - and transaction log backups available? For this type of corruption - your best option will be to restore from good backups and apply transaction log backups up to the current point in time.

This cannot be fixed by any other means - other than resorting to running DBCC CHECK with the option repair_allow_data_loss. Using this will cause data loss and how much data loss is unknown as the system can no longer find the objects. I would not recommend doing this...

Before you do anything - make sure you have copies of the existing database saved off somewhere safe and test any processes on a separate system before attempting in production.

And finally - review the application/system event logs for any IO related errors. Identify those errors and make sure they have been addressed. If these are not addressed the issue will likely happen again.

Thanks Jeff. These are databases we inherited from a merger so no good backups from prior. We've tried rebuilding all the indexes, DBCC UPDATEUSAGE, and DBCC CHECKDB ALLOW DATA LOSS with no success. We're looking at rebuilding them and copying everything to new databases. Seeing if that fixes it.

If the DBCC repair did not fix the issues - then your only option is to attempt to copy everything out...however, I would hold out much hope on that because the missing objects probably contain data that you need/want.

What happened when you did the repair - how did that not fix the corruption in the database?

The REPAIR did indicate it was fixed but after re-running the DBCC CHECKDB the error was still there.