diff --git a/imports.md b/imports.md
index 03cccfb..869a4bb 100644
--- a/imports.md
+++ b/imports.md
@@ -1157,6 +1157,9 @@ WASI.
[method]descriptor.link-at: func
Create a hard link.
+Fails with error-code::no-entry if the old path does not exist,
+with error-code::exist if the new path already exists, and
+error-code::not-permitted if the old path is not a file.
Note: This is similar to linkat in POSIX.
Params
diff --git a/wit/types.wit b/wit/types.wit
index d229a21..6ca962c 100644
--- a/wit/types.wit
+++ b/wit/types.wit
@@ -508,6 +508,10 @@ interface types {
/// Create a hard link.
///
+ /// Fails with `error-code::no-entry` if the old path does not exist,
+ /// with `error-code::exist` if the new path already exists, and
+ /// `error-code::not-permitted` if the old path is not a file.
+ ///
/// Note: This is similar to `linkat` in POSIX.
@since(version = 0.2.0)
link-at: func(