sachaos / todoist

Todoist CLI Client. I ❤️ Todoist and CLI.
MIT License
1.46k stars 105 forks source link

Panic on list with `todoist list` under Windows #250

Open rwp0 opened 9 months ago

rwp0 commented 9 months ago
D:\>todoist -v
todoist version 0.20.0
D:\>todoist list
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x30 pc=0x70374b]

goroutine 1 [running]:
github.com/sachaos/todoist/lib.Item.LabelsString({{{{0xc000360f60, 0xa}}, {{0xc000360f70, 0xa}}, {0xc000360f5a, 0x5}, {0xc000360f80, 0x8}}, {0x0}, {0x0}, ...}, ...)
        /Users/sachaos/dev/github.com/sachaos/todoist/lib/item.go:221 +0x20b
main.List.func1(0xc0004314e0, 0x0?)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:72 +0x31b
main.traverseItems(0xc0004314e0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:13 +0x2e
main.traverseItems(0xc0004313a8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000431270, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000431138, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000431000, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430ec8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430d90, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430c58, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430b20, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc0004309e8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc0004308b0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430778, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430640, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430508, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc0004303d0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430298, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430160, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000430028, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042fef0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042fdb8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042fc80, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042fb48, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042fa10, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f8d8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f7a0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f668, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f530, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f3f8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f2c0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f188, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042f050, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ef18, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ede0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042eca8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042eb70, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ea38, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e900, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e7c8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e690, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e558, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e420, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e2e8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e1b0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042e078, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042df40, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042de08, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042dcd0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042db98, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042da60, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d928, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d7f0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d6b8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d580, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d448, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d310, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d1d8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042d0a0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042cf68, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ce30, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ccf8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042cbc0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ca88, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c950, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c818, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c6e0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c5a8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c470, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c338, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c200, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042c0c8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042bf90, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042be58, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042bd20, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042bbe8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042bab0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b978, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b840, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b708, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b5d0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b498, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b360, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b228, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042b0f0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042afb8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ae80, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ad48, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042ac10, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042aad8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a9a0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a868, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a730, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a5f8, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a4c0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a388, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc00042a118, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74
main.traverseItems(0xc000429fe0, 0xc00051cff0, 0x0)
        /Users/sachaos/dev/github.com/sachaos/todoist/list.go:20 +0x74

Just downloaded to test under Windows from Releases. https://github.com/sachaos/todoist/releases/tag/v0.20.0 todoist_windows_amd64.exe Input API key, commands such as show and labels worked fine.

psethwick commented 8 months ago

Do you have any shared labels?

rwp0 commented 8 months ago

Do you have any shared labels?

Not sure what shared labels are. But I guess, I don't have any.

helagro commented 8 months ago

I had the same problem. Moving all shared labels into personal labels fixed the issue for me. You can find shared labels at https://app.todoist.com/app/filters-labels

Running MacOS, Todoist version 0.20.0