I have seen this happen. I think that DBCC CHECKDB was clean for this database. But we had just restored another database on the same server we had to resort to REPAIR_WITH_ALLOW_DATA_LOSS. The I/O subsystem on that server had gone from bad to worse.
That is, my prime suspicion is corruption. Run DBCC CHECKDB and DBCC CHECKCONSTRAINTS - the latter will reveal if there any more violations.
What does sys.databases.page_verify_option_desc report for this database?