diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c
index 021a8dcf44b98539940ed08a0d4a9c41bce16c2d..3dc3e96df4d9c13833c8b1dc15a5a3e06f5078fc 100644
--- a/src/backend/access/gist/gistbuild.c
+++ b/src/backend/access/gist/gistbuild.c
@@ -144,6 +144,16 @@ gistbuild(PG_FUNCTION_ARGS)
 		elog(ERROR, "index \"%s\" already contains data",
 			 RelationGetRelationName(index));
 
+	/*
+	 * We can't yet handle unlogged GiST indexes, because we depend on LSNs.
+	 * This is duplicative of an error in gistbuildempty, but we want to check
+	 * here so as to throw error before doing all the index-build work.
+	 */
+	if (heap->rd_rel->relpersistence == RELPERSISTENCE_UNLOGGED)
+		ereport(ERROR,
+				(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				 errmsg("unlogged GiST indexes are not supported")));
+
 	/* no locking is needed */
 	buildstate.giststate = initGISTstate(index);