{"record":{"id":"9d96c9af9fd34024","repo":"firefly-iii/firefly-iii","slug":"could-not-render-report-view","errorCode":null,"errorMessage":"Could not render report view.","messagePattern":"Could not render report view\\.","errorType":"exception","errorClass":"FireflyException","httpStatus":500,"severity":"error","filePath":"app/Generator/Report/Standard/MonthReportGenerator.php","lineNumber":68,"sourceCode":"     * @throws FireflyException\n     */\n    public function generate(): string\n    {\n        $accountIds = implode(',', $this->accounts->pluck('id')->toArray());\n        $reportType = 'default';\n\n        try {\n            return view('reports.default.month', ['accountIds' => $accountIds, 'reportType' => $reportType])\n                ->with('start', $this->start)\n                ->with('end', $this->end)\n                ->render()\n            ;\n        } catch (Throwable $e) {\n            Log::error(sprintf('Cannot render reports.default.month: %s', $e->getMessage()));\n            Log::error($e->getTraceAsString());\n            $result = 'Could not render report view.';\n\n            throw new FireflyException($result, 0, $e);\n        }\n    }\n\n    /**\n     * Sets the accounts involved in the report.\n     */\n    public function setAccounts(Collection $accounts): ReportGeneratorInterface\n    {\n        $this->accounts = $accounts;\n\n        return $this;\n    }\n\n    /**\n     * Unused budget setter.\n     */\n    public function setBudgets(Collection $budgets): ReportGeneratorInterface\n    {","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/firefly-iii/firefly-iii/blob/fd8791d08d4d9e6467519a78048cd038e26b8878/app/Generator/Report/Standard/MonthReportGenerator.php#L50-L86","documentation":"The Standard month report generator renders reports.default.month inside a try/catch; any Throwable while rendering is logged as 'Cannot render reports.default.month' and wrapped as a FireflyException whose message is fixed: 'Could not render report view.' (this variant, unlike the others, does not append the original error — getPrevious() carries it).","triggerScenarios":"Missing or renamed default month template/partial; view overrides referencing variables not among accountIds, reportType, start, end; PHP errors in helpers or composers used by the template; stale compiled views.","commonSituations":"Broken upgrades where the standard report views changed; heavy view customization colliding with new Blade structure.","solutions":["Inspect the 'Cannot render reports.default.month' log line — the original message is there even though the exception text omits it.","Run php artisan view:clear and retry.","Confirm resources/views/reports/default/month.blade.php and its @include partials exist in this release.","Diff local overrides against the shipped default report views."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!view()->exists('reports.default.month')) {\n    abort(500, 'Standard month report view missing');\n}","typeGuard":null,"tryCatchPattern":"try {\n    $html = $generator->generate();\n} catch (FireflyException $e) {\n    if ('Could not render report view.' === $e->getMessage()) {\n        // message carries no details: read getPrevious()/log for the real cause\n        $html = '';\n    } else {\n        throw $e;\n    }\n}","preventionTips":["php artisan view:clear after deploys.","Diff customized reports.default.month overrides with the shipped template each upgrade.","Monitor for 'Cannot render reports.default.month' log entries to catch template drift."],"tags":["firefly-iii","report","blade","view-render","generator"],"backgroundTag":"view-render-failed","analyzedSha":"fd8791d08d4d9e6467519a78048cd038e26b8878","analyzedAt":"2026-08-17T02:14:53.848Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}