Could not allocate space for object in database because the Filegroup is full
I'm looking for ways to avoid it in the future...


Don't have just a single file in the filegroup that has any free space. Set your files to the same size, grow them at the same time to the same sizes, and let the round robin with proportional fill algorithm do its' thing.


  But, the auto-growth restricted files in filegroups are restricted due to space issues on the drives they reside. So enabling auto-growth for them or increasing their initial size to keep same across all files would be difficult.


Then they should be moved to different drives where there is space, or moved around so that all drives have space, or the drives expanded.

This really comes down to administration. This will be an ever present issue while the data files are vastly different in free space and size. The reason comes down to proportional fill and round robin allocations.

A very quick summary of proportional fill in SQL Server is that  the file in the filegroup with the most free space should be allocated from more often than the ones with less free space. If there is a file with little to no free space, it'll be skipped. This means when you only have one file in your filegroup that really has any space, you're effectively hot-spotting all allocations there. The round robin part is just the allocations going between the files.

Since you're only keeping a single file with unbalanced amounts of free space, this will become a single hot spot for all allocations. This is why I advised the above in equaling your files as much as possible.