Hidden file structures and surprising side-effects

This guest post was originally published on the Google Docs Help Forum and was written by Bas Braams, a Level 12 Google Guide who has answered thousands of questions about Google Docs. It details a number of ways in which Google Docs can behave in unexpected ways.

It is possible to create a collection and an item in the collection and give them different ownership, even arranging it so that the collection appears private to user A (Alice) and the item appears private to user B (Bob), but such that (invisible to both A and B) there is still a link in the data structures that points from the collection to the item. Operations on the file structure can then have some surprising and perhaps undesirable side-effects. Here are some examples. The side-effects are not as serious as deletion of files that one does not own [1-2], but I still think that the examples point to errors in the design.

Alice creates collection L0 and creates file doc0 inside L0. She also creates file doc1 in Home and moves it into L0. She now has collection L0 containing side-by-side files doc0 and doc1, and files doc0 and doc1 both appear in Home and in L0 and not in any other collection that the user can see. Alice now deletes L0 (move to trash and empty the trash). The effect is that also doc0 is removed, but doc1 remains under Home. Note that in this example no sharing is involved. The example goes back to daniel1960 in an early contribution under [3] and is further explored by Mauro Bertapelle in [4] where it is traced to a hidden [folder:root] collection.

In the same spirit Alice creates L0 and within L0 she creates side-by-side files doc2 and doc3. She shares doc2 and doc3 view-only with Bob. Bob assigns doc3 to one of his collections. Some time later Alice thinks the better of the share and removes access for Bob. Following that action Alice has again a private collection L0 containing private files doc2 and doc3, which are not in any other collection that she can see, and Bob cannot see doc2 and doc3 anymore. Alice now deletes L0. To her surprise she finds that doc2 is deleted and doc3 remains in her Home.

In a slight twist on the previous example Alice creates L0 and within it doc4 and doc5, and she shares those files view-only to anyone with the link. Some anonymous viewer chooses to assign doc5 to one of his collections. Later Alice changes the sharing to private again, so that L0 and its doc4 and doc5 are hers alone. She deletes L0 and now she finds that doc5 remains in her Home.

Alice creates collection L0 and within it file doc6 and she arranges that doc6 is not shown in Home. She passes ownership of doc6 to Bob and completely removes herself from doc6. Bob finds doc6 in his home and it belongs to him alone; he proceeds to edit it. He also creates file doc7, side-by-side with doc6 in his home. He then passes ownership of doc6 and doc7 to Alice, removing himself. Alice will find doc7 in her home, but she won’t find doc6 there. Bob doesn’t have it anymore, so doc6 appears lost to the world. Eventually Alice may find doc6 in L0.

Alice creates collection L0 and within it file doc8, and she has doc8 not shown in Home. She passes ownership of doc8 to Bob, removing herself from it. She then deletes L0. Bob creates doc9 next to doc8 in his home, edits both, and passes ownership of doc8 and doc9 to Alice, removing himself. Alice will find doc9 in her Home, but doc8 appears to be lost. It may finally be found under All for Alice.

[1] Trashing a collection now deletes the content too

[2] Possibility to delete files that one does not own

[3] Cannot Empty Trash, Cannot Delete Files

[4] Moving a collection to trash does not trash the documents inside

As always, we strongly suggest backing up Google Docs with Spanning Backup for Google Workspace so if any of these behaviors affect you, you’ll be able to quickly recover your docs to a previous known-good state.