While working on creating a new site, we ran into a problem (and found a solution) that I thought I would pass along.
All was well in our site.. then, we changed permissions on a document library to no longer inherit permissions from the parent site (web) that it was a part of. Then, we added a large group of individuals to the document library permissions.. about 50 people.. hit OK and then the error occurred.
The navigation menu at the top simply said "Error". If you hovered over it, it gave a stacktrace error in the tooltip.
If you pulled up the site, you got a page that simply said "Cannot complete this action. Please try again."
I did notice that if I navigated to any site that did NOT inherit permissions from the parent and added "_layouts/user.aspx" to the url, I was able to bring up a page.. but the navigation still said "error".
However, if I added "_layouts/user.aspx" to a url which DID inherit permissions from the parent web site (actually, the top level web site), then I was NOT able to bring up the page at all.
After some digging, I discovered the following in the datamodel.
There is a tabled called "perms" in the content database. This table will contain an entry for any entity that has permissions assigned to it. I saw an entry for all of the sites and document libraries which had unique permissions. BUT.. I did not see an entry for the top level website. It was gone.
To confirm, I created a new site collection (btw, I created it in the same web application as the broken site collection) and used another content database. In this new one (that worked by the way), I saw an entry in the perms table.. but not in the broken site.
So I felt like the issue was that when the site tried to render, it could not resolve the permissions to the top level web site. NOTE: I did not change anything in the database... AND YOU SHOULD NOT EITHER.... just look around.
Then, I spent time with Microsoft to determine the problem. We did all of the ordinary things and then, I suggested we look at the following hotfix:
http://support.microsoft.com/kb/936867/en-us
We applied this hotfix to the WFE server (we did not apply to the backend database server) and then ran the configuration wizard. That fixed the problem. I also went into the database and checked the table.. sure enough.. the missing entry in the perms table was now there.
I thought I would pass this along, in hopes it might help someone else..
ALSO... MICROSOFT..I think its about time for SP1.... :-)