defer pagination error to EachPage callback
diff --git a/acceptance/openstack/objectstorage/v1/containers_test.go b/acceptance/openstack/objectstorage/v1/containers_test.go
index 8f80522..4e361aa 100644
--- a/acceptance/openstack/objectstorage/v1/containers_test.go
+++ b/acceptance/openstack/objectstorage/v1/containers_test.go
@@ -46,12 +46,7 @@
 
 	// List the numContainer names that were just created. To just list those,
 	// the 'prefix' parameter is used.
-	pager := containers.List(client, containers.ListOpts{Full: true, Prefix: "gophercloud-test-container-"})
-	if pager.Err != nil {
-		t.Error(err)
-		return
-	}
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = containers.List(client, containers.ListOpts{Full: true, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
 		containerList, err := containers.ExtractInfo(page)
 		if err != nil {
 			t.Error(err)
@@ -68,8 +63,7 @@
 	}
 
 	// List the info for the numContainer containers that were created.
-	pager = containers.List(client, containers.ListOpts{Full: false, Prefix: "gophercloud-test-container-"})
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = containers.List(client, containers.ListOpts{Full: false, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
 		containerList, err := containers.ExtractNames(page)
 		if err != nil {
 			return false, err
diff --git a/acceptance/openstack/objectstorage/v1/objects_test.go b/acceptance/openstack/objectstorage/v1/objects_test.go
index 66cb8e7..b8dfa40 100644
--- a/acceptance/openstack/objectstorage/v1/objects_test.go
+++ b/acceptance/openstack/objectstorage/v1/objects_test.go
@@ -64,12 +64,8 @@
 		}
 	}()
 
-	pager := objects.List(client, cName, objects.ListOpts{Full: false, Prefix: "test-object-"})
-	if pager.Err != nil {
-		t.Fatalf("Pager error: %v", pager.Err)
-	}
 	ons := make([]string, 0, len(oNames))
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = objects.List(client, cName, objects.ListOpts{Full: false, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
 		names, err := objects.ExtractNames(page)
 		if err != nil {
 			return false, err
@@ -87,12 +83,8 @@
 		return
 	}
 
-	pager = objects.List(client, cName, objects.ListOpts{Full: true, Prefix: "test-object-"})
-	if pager.Err != nil {
-		t.Fatalf("Pager error: %v", pager.Err)
-	}
 	ois := make([]objects.Object, 0, len(oNames))
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = objects.List(client, cName, objects.ListOpts{Full: true, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
 		info, err := objects.ExtractInfo(page)
 		if err != nil {
 			return false, nil
diff --git a/pagination/pager.go b/pagination/pager.go
index cc1c048..22d6d84 100644
--- a/pagination/pager.go
+++ b/pagination/pager.go
@@ -68,6 +68,9 @@
 // EachPage iterates over each page returned by a Pager, yielding one at a time to a handler function.
 // Return "false" from the handler to prematurely stop iterating.
 func (p Pager) EachPage(handler func(Page) (bool, error)) error {
+	if p.Err != nil {
+		return p.Err
+	}
 	currentURL := p.initialURL
 	for {
 		currentPage, err := p.fetchNextPage(currentURL)