 
       (testing "fatal error on remote parser"
         (is (= (run-parser
-                 {::foreign [{::foreign-id 'remote
-                              ::resolvers  [(pc/resolver 'a
-                                              {::pc/output [:critical-error]}
-                                              (fn [_ _] {:critical-error 4}))]}]
+                 {::foreign [{::foreign-id   'remote
+                              ::resolvers    [(pc/resolver 'a
+                                                {::pc/output [:critical-error]}
+                                                (fn [_ _] {:critical-error 4}))]
+                              ::fatal-error? true}]
                   ::query   [:critical-error]})
                {:critical-error                 :com.wsscode.pathom.core/reader-error,
-                :com.wsscode.pathom.core/errors {[:critical-error] "class clojure.lang.ExceptionInfo: Parser Error - {:foo \"bar\"}"}}))))
+                :com.wsscode.pathom.core/errors {[:critical-error] "class clojure.lang.ExceptionInfo: Parser Error - {:foo \"bar\"}"}}))
+
+        (testing "in ident request"
+          (is (= (run-parser
+                   {::foreign [{::foreign-id   'remote
+                                ::resolvers    [(pc/resolver 'a
+                                                  {::pc/input  #{:id}
+                                                   ::pc/output [:critical-error]}
+                                                  (fn [_ _] {:critical-error 4}))]
+                                ::fatal-error? true}]
+                    ::query   [{[:id 123] [:critical-error]}]})
+                 {[:id 123]                       {:critical-error :com.wsscode.pathom.core/reader-error},
+                  :com.wsscode.pathom.core/errors {[[:id 123] :critical-error] "class clojure.lang.ExceptionInfo: Parser Error - {:foo \"bar\"}"}})))))
 
     (testing "nested queries"
       (is (= (run-parser

                                                             {::p/wrap-parser
                                                              (fn [parser]
                                                                (fn [env tx]
                                                                  (if (= tx [:critical-error])
                                                                    (throw (ex-info "Parser Error" {:foo "bar"})))
                                                                  (swap! foreign-calls update source-id p.misc/vconj tx)
                                                                  (parser env tx)))}))}

                          foreign
                          (assoc ::ps/foreign-parsers
                            (mapv
                              (fn [{::keys [resolvers foreign-id fatal-error?]}]
                                (let [source-id (or foreign-id (gensym "foreign-source-"))]
                                  (ps/connect-serial-parser
                                    {::ps/connect-reader pc/reader3
