NVME-WDC-VS-ERROR(1)
π nvme-wdc-vs-error-reason-identifier(1) β like, the WDC telemetry error reason identifier page, bestie π
okay so first things first: this is part of the NVMe Manual, and the command itself is nvme-wdc-vs-error-reason-identifier β say that five times fast, I dare you π
β¨ NAME β¨
nvme-wdc-vs-error-reason-identifier β grab the error reason identifier field out of a WDC device's telemetry log. that's the whole vibe π
π¦ SYNOPSIS π¦
nvme [<global-options>] wdc vs-error-reason-identifier <device>
[--log-id=<NUM>, -i <NUM>]
[--file=<FILE>, -O <FILE>]
πΈ DESCRIPTION πΈ
so for the NVMe device you hand over, this pulls the telemetry log error reason id field β either for the host generated log or the controller initiated one. your choice, main character energy π
β οΈ real talk: the controller initiated telemetry log page option must be enabled to retrieve the error reason id for that log page id. no option, no id, no cap.
the <device> parameter is mandatory β not optional, not vibes-based β and it has to be the NVMe character device, like /dev/nvme0 for example.
π also: this only works on WDC devices that support this feature. results for any other device are undefined β literally undefined, don't come for me.
on success it returns 0, and an error code otherwise. slay β¨
π OPTIONS π
-i <id>,--log-id=<id>β tells it which telemetry log id's error reason identifier to go get. use id7for the host generated log page, use id8for the controller initiated log page. the default?7/host generated, periodt π«Ά-O <FILE>,--file=<FILE>β output file, duh. defaults to<device serial number>_error_reason_identifier_host_<date>_<time>.binfor the host generated log, or<device serial number>_error_reason_identifier_ctlr_<date>_<time>.binfor the controller initiated log. yes the whole long filename, that's the bit π
π GLOBAL OPTIONS π
these ones live at the top-level nvme command and are available to this subcommand too. iykyk π
--dry-runβ prints the command that would be executed, but doesn't actually execute it. manifesting the command without running the command, honestly iconic β¨--no-ioctl-probingβ disables probing for 64-bit IOCTL support. no probing, no problem π--no-retriesβ disables retry logic on transient errors. one shot, one opportunity π―-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,json, orbinary. only one output format at a time, bestie β pick a lane πΈ--output-format-version=<version>β picks the output format version. version1uses the original field naming, while version2(the default) gives you more consistent and script-friendly field names. any other versions get rejected β not invited to the party π--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. it's giving "shh, i'm in my quiet era" π€«--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. the supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. keys and values, keys and values π--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). time is a construct anyway β³-v,--verboseβ increases the level of detail in the output. can be specified multiple times to increase verbosity even further. more v's, more lore π₯
π‘ these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. always. no exceptions. periodt π
π EXAMPLES π
- retrieves the host generated error reason identifier field and saves it in the file
host_gen_error_reason_id.bin:
# nvme wdc vs-error-reason-identifier /dev/nvme0 -i 7 -O host_gen_error_reason_id.bin
- retrieves the controller initiated error reason identifier field and saves it in the file
ctlr_init_error_reason_id.bin:
# nvme wdc vs-error-reason-identifier /dev/nvme0 -i 8 -O ctlr_init_error_reason_id.bin
π§ NVME π§
part of the nvme-user suite. family π
okay that's the whole page! π this one's from the NVMe suite, dated 10/30/2026, and the page id is NVME-WDC-VS-ERROR(1) β go forth and retrieve those error reason identifiers, bestie, you're gonna slay π¦β¨π
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms