{"record":{"id":"ba60c3ac180c05ef","repo":"getgrav/grav","slug":"form-has-already-been-submitted","errorCode":null,"errorMessage":"Form has already been submitted","messagePattern":"Form has already been submitted","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"system/src/Grav/Framework/Form/Traits/FormTrait.php","lineNumber":373,"sourceCode":"\n            $this->setError($e->getMessage());\n        }\n\n        $this->filterData($this->data);\n\n        return $this->isValid();\n    }\n\n    /**\n     * @param array $data\n     * @param UploadedFileInterface[]|null $files\n     * @return FormInterface|$this\n     */\n    public function submit(array $data, ?array $files = null): FormInterface\n    {\n        try {\n            if ($this->isSubmitted()) {\n                throw new RuntimeException('Form has already been submitted');\n            }\n\n            $this->data = new Data($data, $this->getBlueprint());\n            $this->files = $files ?? [];\n\n            if (!$this->validate()) {\n                return $this;\n            }\n\n            $this->doSubmit($this->data->toArray(), $this->files);\n\n            $this->submitted = true;\n        } catch (Exception $e) {\n            /** @var Debugger $debugger */\n            $debugger = Grav::instance()['debugger'];\n            $debugger->addException($e);\n\n            $this->setError($e->getMessage());","sourceCodeStart":355,"sourceCodeEnd":391,"githubUrl":"https://github.com/getgrav/grav/blob/6040efed04efa69b8209448ed81308e7c24147c2/system/src/Grav/Framework/Form/Traits/FormTrait.php#L355-L391","documentation":"Error \"Form has already been submitted\" thrown in getgrav/grav.","triggerScenarios":"Thrown at system/src/Grav/Framework/Form/Traits/FormTrait.php:373 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6040efed04efa69b8209448ed81308e7c24147c2","analyzedAt":"2026-08-17T05:07:31.593Z","schemaVersion":2},"datasetVersion":"2026-08-17T09:17:11.063Z"}