{"record":{"id":"596c93f0e3b9391a","repo":"voormedia/rails-erd","slug":"saving-diagram-failed-output-directory-dir-d","errorCode":null,"errorMessage":"Saving diagram failed!\nOutput directory '#{dir}' does not exist.","messagePattern":"Saving diagram failed!\nOutput directory '#(.+?)' does not exist\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"lib/rails_erd/diagram/tbls.rb","lineNumber":42,"sourceCode":"        next unless entity.model\n\n        table_name = entity.model.table_name\n        next if tables_by_name.key?(table_name)\n\n        tables_by_name[table_name] = build_table(entity)\n      end\n\n      each_relationship do |relationship|\n        next if relationship.indirect?\n        next unless relationship.source && relationship.destination\n        next if relationship.source.generalized? || relationship.destination.generalized?\n\n        add_foreign_keys(relationship)\n      end\n\n      save do\n        dir = File.dirname(filename)\n        raise \"Saving diagram failed!\\nOutput directory '#{dir}' does not exist.\" unless File.directory?(dir)\n\n        File.write(filename, JSON.pretty_generate(schema_payload))\n        filename\n      end\n\n      def filename\n        \"#{options.filename}.json\"\n      end\n\n      private\n\n      def schema_payload\n        {\n          name: domain.name || \"rails-erd\",\n          tables: tables_by_name.values,\n        }\n      end\n","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/voormedia/rails-erd/blob/dae6e52018c94ff6d3e3bb0fdbc2cb0c680ec165/lib/rails_erd/diagram/tbls.rb#L24-L60","documentation":"Error \"Saving diagram failed!\nOutput directory '#{dir}' does not exist.\" thrown in voormedia/rails-erd.","triggerScenarios":"Raised by the tbls generator's save block when the directory portion of the configured output filename (File.dirname(filename)) is not an existing directory, e.g. running `rake erd generator=tbls filename=docs/erd` while the docs/ directory has not been created.","commonSituations":"See trigger scenarios.","solutions":["Create the output directory before running the task: `mkdir -p <dir>` (the directory named in the error message).","Pass a filename whose parent directory already exists, e.g. `bundle exec rake erd filename=erd` for the project root, or create the target directory first."],"exampleFix":"mkdir -p doc && bundle exec rake erd filename=doc/erd","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"dae6e52018c94ff6d3e3bb0fdbc2cb0c680ec165","analyzedAt":"2026-08-23T02:52:18.679Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}