diff --git a/environs/jujutest/livetests.go b/environs/jujutest/livetests.go
index <HASH>..<HASH> 100644
--- a/environs/jujutest/livetests.go
+++ b/environs/jujutest/livetests.go
@@ -584,17 +584,23 @@ func (t *LiveTests) TestFile(c *C) {
 	// check that the listed contents include the
 	// expected name.
 	found := false
-	names, err := storage.List("")
-	for _, lname := range names {
-		if lname == name {
-			found = true
-			break
+	var names []string
+attempt:
+	for a := t.Attempt.Start(); a.Next(); {
+		var err error
+		names, err = storage.List("")
+		c.Assert(err, IsNil)
+		for _, lname := range names {
+			if lname == name {
+				found = true
+				break attempt
+			}
 		}
 	}
 	if !found {
 		c.Errorf("file name %q not found in file list %q", name, names)
 	}
-	err = storage.Remove(name)
+	err := storage.Remove(name)
 	c.Check(err, IsNil)
 	checkFileDoesNotExist(c, storage, name, t.Attempt)
 	// removing a file that does not exist should not be an error.
environs/jujutest: revert TestFile loop removal