gopls version

Build info
----------
golang.org/x/tools/gopls v0.20.0
    golang.org/x/tools/gopls@v0.20.0 h1:fxOYZXKl6IsOTKIh6IgjDbIDHlr5btOtOUkrGOgFDB4=
    github.com/BurntSushi/toml@v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
    github.com/fatih/camelcase@v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
    github.com/fatih/gomodifytags@v1.17.1-0.20250423142747-f3939df9aa3c h1:dDSgAjoOMp8da3egfz0t2S+t8RGOpEmEXZubcGuc0Bg=
    github.com/fatih/structtag@v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
    github.com/fsnotify/fsnotify@v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
    github.com/google/go-cmp@v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
    golang.org/x/exp/typeparams@v0.0.0-20250620022241-b7579e27df2b h1:KdrhdYPDUvJTvrDK9gdjfFd6JTk8vA1WJoldYSi0kHo=
    golang.org/x/mod@v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
    golang.org/x/sync@v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
    golang.org/x/sys@v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
    golang.org/x/telemetry@v0.0.0-20250710130107-8d8967aff50b h1:DU+gwOBXU+6bO0sEyO7o/NeMlxZxCZEvI7v+J4a1zRQ=
    golang.org/x/text@v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
    golang.org/x/tools@v0.35.1-0.20250728180453-01a3475a31bc h1:ZRKyKRJl/YEWl9ScZwd6Ua6xSt7DE6tHp1I3ucMroGM=
    golang.org/x/vuln@v1.1.4 h1:Ju8QsuyhX3Hk8ma3CesTbO8vfJD9EvUBgHvkxHBzj0I=
    honnef.co/go/tools@v0.7.0-0.dev.0.20250523013057-bbc2f4dd71ea h1:fj8r9irJSpolAGUdZBxJIRY3lLc4jH2Dt4lwnWyWwpw=
    mvdan.cc/gofumpt@v0.8.0 h1:nZUCeC2ViFaerTcYKstMmfysj6uhQrA2vJe+2vwGU6k=
    mvdan.cc/xurls/v2@v2.6.0 h1:3NTZpeTxYVWNSokW3MKeyVkz/j7uYXYiMtXRUfmjbgI=
go: go1.24.7

go env

GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/ian/Library/Caches/go-build'
GOENV='/Users/ian/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/ian/go/pkg/mod'
GONOPROXY='github.com/gb'
GONOSUMDB='github.com/gb'
GOOS='darwin'
GOPATH='/Users/ian/go'
GOPRIVATE='github.com/gb'
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/ian/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.12.darwin-arm64'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/ian/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.12.darwin-arm64/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.23.12'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/ian/Library/Application Support/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/Users/ian/src/roadie/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/ts/8mtw6_ys063g05dpbbwx0y980000gn/T/go-build3086432762=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?

Typing new code while running a VSCode Liveshare. This happens both on the host and a connected client (although I think the client may have to type something first to trigger the host to start exhibiting the same behaviour).

What did you see happen?

Frequentl pops up a code action resolve failed error, with various contents depending on the change that is being made. These errors appear live as you're typing and it's possible for them to stack until they fill most of the vertical height of a monitor making pairing incredibly difficult.

Image

https://github.com/user-attachments/assets/4d8cbf63-6313-47cb-9267-aacf43361ca1

What did you expect to see?

No popups or a popup on save.

Editor and settings

{
    "workbench.colorTheme": "Default Dark Modern",
    "prettier.requireConfig": true,
    "editor.codeActionsOnSave": {
        "source.fixAll": "explicit"
    },
    "git.confirmSync": false,
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "wallaby.startAutomatically": false,
    "playwright.env": {}
}

Logs

[Error - 12:45:23] Request codeAction/resolve failed.
  Message: no identifier found
  Code: 0 
[Error - 12:45:29] Request codeAction/resolve failed.
  Message: no identifier found
  Code: 0 
[Error - 12:45:29] Request codeAction/resolve failed.
  Message: no identifier found
  Code: 0 
[Info  - 12:45:51] 2025/09/12 12:45:51 background imports cache refresh starting

[Info  - 12:45:51] 2025/09/12 12:45:51 background refresh finished after 25.97425ms

[Error - 12:45:53] Request codeAction/resolve failed.
  Message: no identifier found
  Code: 0 
[Info  - 12:46:21] 2025/09/12 12:46:21 background imports cache refresh starting

[Info  - 12:46:21] 2025/09/12 12:46:21 background refresh finished after 45.627875ms

Comment From: gabyhelp

Related Issues

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Comment From: findleyr

See also https://github.com/golang/go/issues/71405

For some reason, VS Code liveshare always runs codeAction/resolve, where normal VS Code sessions don't run it until you actually try to run the codeAction.

I wish the error message included the actual code action that failed to resolve...

Comment From: findleyr

At the very least, we should have a way to disable codeAction/resolve so that it stops breaking LiveShare sessions.