         XCTAssertEqual(result.value, singleThrowsExpected)
         //XCTAssertEqualWithAccuracy(0.1, result.seconds, accuracy: 0.25)
     }
+    
+    func testSerialFieldExecutionStrategyWithSingleFieldFailedFuture() throws {
+        let eventLoopGroup = MultiThreadedEventLoopGroup(numThreads: 1)
+        defer {
+            XCTAssertNoThrow(try eventLoopGroup.syncShutdownGracefully())
+        }
+        
+        let result = try timing(try graphql(
+            queryStrategy: SerialFieldExecutionStrategy(),
+            schema: schema,
+            request: singleFailedFutureQuery,
+            eventLoopGroup: eventLoopGroup
+            ).wait())
+        XCTAssertEqual(result.value, singleFailedFutureExpected)
+        //XCTAssertEqualWithAccuracy(0.1, result.seconds, accuracy: 0.25)
+    }
 
     func testSerialFieldExecutionStrategyWithMultipleFields() throws {
         let eventLoopGroup = MultiThreadedEventLoopGroup(numThreads: 1)

            "locations": [
                ["column": 75, "line": 1]
            ],
            "message": "exampleError(msg: \"bang: j\")",
            "path":["j"]
        ],
        ]

                            msg: "\(info.fieldName): \(info.path.last as! String)"
                        )
                }
                ),
                "futureBang": GraphQLField(
                    type: GraphQLString,
                    resolve: { (_, _, _, eventLoopGroup, info: GraphQLResolveInfo) in
                        let g = DispatchGroup()
                        g.enter()
                        DispatchQueue.global().asyncAfter(wallDeadline: .now() + 0.1) {
                            g.leave()
                        }
                        g.wait()
                        return eventLoopGroup.next().newFailedFuture(error: StrategyError.exampleError(
                            msg: "\(info.fieldName): \(info.path.last as! String)"
                        ))
                }
                )
            ]
        )
