Skip to content

toggle_discussions() doesn't open new window - draft_notes error 404 #507

@HunterretnuH

Description

@HunterretnuH

Prerequsities

  • I'm on the latest version of the plugin
  • I've installed the required dependencies
  • I've run :h gitlab.nvim.troubleshooting and followed the steps there

Setup Configuration and Environment

return {
    "harrisoncramer/gitlab.nvim",
    dependencies = {
        "MunifTanjim/nui.nvim",
        "nvim-lua/plenary.nvim",
        "sindrets/diffview.nvim",
        "nvim-tree/nvim-web-devicons"
    },
    lazy = false,
    build = function() require("gitlab.server").build(true) end, -- Builds the Go binary
    keys = function()
        local map = require('map')
        map.map('n', '<leader>gm', function() require("gitlab").choose_merge_request() end, { desc = "[m]erge request view (gitlab)" } )
        map.exportKeys()
    end,
    config = function()
        require("gitlab").setup({
            auth_provider = function()
                return "<redacted>", "<redacted>", nil
            end,
            connection_settings = {
                insecure = true,
            },
            debug = {
                request = true,
                response = true,
                gitlab_request = true,
                gitlab_response = true,
            },
        })
    end,
}

Bug Description

require("gitlab").toggle_discussions() does not open discussion window.
Error notificaiton:
gitlab.nvim: Could not get draft notes: 404 Not Found

Reproduction Steps

  1. Add my plugin configuration file to neovim with Lazy.nvim installed (tested without other plugins).
  2. Run require("gitlab").choose_merge_request(), select MR.
  3. Use gld to open discussion window.
  4. Result: No new windows is opened. Error message about draft_notes being not found appears.

Additional info

Output's of commands from gitlab.nvim.troubleshooting:

  1. checkhealth gitlab
==============================================================================
gitlab:                                       require("gitlab.health").check()

gitlab.nvim ~
- ⚠️ WARNING stevearc/dressing.nvim is a recommended dependency
  1. require("gitlab").print_settings() - prints defaults + changes from my config as expected.

  2. require("gitlab.server").build(true)

gitlab.nvim: Installed successfully!
  1. require("gitlab.server").start(function() print("Server started") end)
gitlab.nvim: Failed to initialize Gitlab client: GitLab instance URL cannot be empty
gitlab.nvim: Golang gitlab server exited: job_id: 3, exit_code: 1

but if I first use require("gitlab").choose_merge_request() and then do require("gitlab.server").restart() then server is restarted without any issue:

gitlab.nvim: Restarted server
  1. I've enabled debug logs and here is example of failure in logs:
-- REQUEST TO GO SERVER --
GET /mr/draft_notes/ HTTP/1.1
Host: localhost:45393
Accept: */*
Private-Token: REDACTED
User-Agent: curl/7.81.0

-- REQUEST TO GITLAB --
GET /api/v4/projects/2253/merge_requests/710/draft_notes HTTP/1.1
Host: <redacted>
Accept: application/json
Private-Token: REDACTED
User-Agent: go-gitlab

-- RESPONSE FROM GITLAB --
HTTP/1.1 404 Not Found
Content-Length: 25
Cache-Control: no-cache
Connection: keep-alive
Content-Type: application/json
Date: Tue, 16 Sep 2025 17:25:01 GMT
Server: nginx
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Gitlab-Feature-Category: not_owned
X-Request-Id: 01K59RXX1PQGGYRNDE1B63SDFV
X-Runtime: 0.011073

{"error":"404 Not Found"}

-- RESPONSE FROM GO SERVER --
HTTP/0.0 500 Internal Server Error
Content-Length: 66
Content-Type: application/json

{"message":"Could not get draft notes","details":"404 Not Found"}

Update

One more observation. I am able to create comments, but creation of draft comment fails.
After I create a comment diagnostic symbols for comments are finally loaded and I can list comments via diagnostic listing.

Also:

 curl --insecure --header "PRIVATE-TOKEN: <redacted>" --url "https://<redacted>/api/v4/projects/2253/merge_requests/710/draft_note"

fails with error 404, but:

 curl --insecure --header "PRIVATE-TOKEN: <redacted>" --url "https://<redacted>/api/v4/projects/2253/merge_requests/710/discussions"

returns valid JSON.
And

 curl --insecure --header "PRIVATE-TOKEN: <redacted>" --url "https://<redacted>/api/v4/projects/2253/merge_requests/710/notes"

also returns valid JSON.

Update 2

I've found the root cause, it seems like draft_notes API was introduced in version 16.0 (or at least somewhere between 15.0 and 16.0). The gitlab that I have to use is version 13.12.
Am I correct to assume that there is nothing I can do to make it work?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions