{"record":{"id":"c908f0a9b28f12c9","repo":"discourse/discourse","slug":"status-line-for-upcoming-change-change-name-did","errorCode":null,"errorMessage":"Status line for upcoming change #{change_name} did not change","messagePattern":"Status line for upcoming change #(.+?) did not change","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"lib/upcoming_changes/status_report.rb","lineNumber":301,"sourceCode":"\n        \"##{record[:original_pr_number]}\"\n      end\n    end\n\n    class SourceStatusUpdater\n      def initialize(settings_file:)\n        @settings_file = settings_file\n      end\n\n      def update!(change_name:, next_status:)\n        lines = File.readlines(@settings_file)\n        status_line = status_line_for(change_name)\n        raise \"Could not locate status line for upcoming change: #{change_name}\" if status_line.nil?\n\n        original_line = lines.fetch(status_line)\n        lines[status_line] = updated_status_line(original_line, next_status)\n        if original_line == lines[status_line]\n          raise \"Status line for upcoming change #{change_name} did not change\"\n        end\n\n        File.write(@settings_file, lines.join)\n      end\n\n      private\n\n      def updated_status_line(line, next_status)\n        match = STATUS_PATTERN.match(line)\n        raise \"Could not parse status line: #{line.strip}\" if match.nil?\n\n        indentation, quote, _old_status, suffix, newline = match.captures\n        \"#{indentation}status: #{quote}#{next_status}#{quote}#{suffix}#{newline}\"\n      end\n\n      def status_line_for(change_name)\n        root = Psych.parse_file(@settings_file).root\n        return if !root.is_a?(Psych::Nodes::Mapping)","sourceCodeStart":283,"sourceCodeEnd":319,"githubUrl":"https://github.com/discourse/discourse/blob/1b2d7253e854205d2c95c80b2c6a1cdd42e45059/lib/upcoming_changes/status_report.rb#L283-L319","documentation":"Error \"Status line for upcoming change #{change_name} did not change\" thrown in discourse/discourse.","triggerScenarios":"Thrown at lib/upcoming_changes/status_report.rb:301 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":"1b2d7253e854205d2c95c80b2c6a1cdd42e45059","analyzedAt":"2026-08-26T03:11:08.302Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}