Recently I observed an issue where we were trying to shrink a database file [Shrinking is not recommended in Production environment as it will cause fragmentation] and SQL Server was not shrinking the file. There was no specific error to identify the reason for this behavior.
We did some R&D and finally observed that the tran_log file was really small and almost full and this was the reason for the Shrink operation to fail.
This is one of the behavior which might happen to your environment too, incase the transaction log is too small.
I am curious to understand if anyone of you might have faced this before.