diff --git a/mysql-test/r/ndb_partition_error.result b/mysql-test/r/ndb_partition_error.result
index 3fd111a7c0f9daa1d0b91f4eee8ef7f631f1e978..66f623dee1308651e0a93047cef5bd091d4be0da 100644
--- a/mysql-test/r/ndb_partition_error.result
+++ b/mysql-test/r/ndb_partition_error.result
@@ -28,3 +28,11 @@ partitions 3
 partition x2 values less than (10),
 partition x3 values less than (20));
 drop table t1;
+CREATE TABLE t1 (id INT) ENGINE=NDB
+PARTITION BY LIST(id)
+(PARTITION p0 VALUES IN (2, 4),
+PARTITION p1 VALUES IN (42, 142));
+INSERT INTO t1 VALUES (2);
+UPDATE t1 SET id=5 WHERE id=2;
+ERROR HY000: Table has no partition for value 5
+DROP TABLE t1;
diff --git a/mysql-test/t/ndb_partition_error.test b/mysql-test/t/ndb_partition_error.test
index cf570cc023479d6ebd778af0814753ec3f37af10..c84266b66f737de69b726bc7847ce960098e9b2a 100644
--- a/mysql-test/t/ndb_partition_error.test
+++ b/mysql-test/t/ndb_partition_error.test
@@ -44,3 +44,15 @@ partitions 3
  partition x3 values less than (20));
 
 drop table t1;
+
+#
+# Bug #17763 mysqld cores with list partitioning if update to missing partition
+#
+CREATE TABLE t1 (id INT) ENGINE=NDB
+  PARTITION BY LIST(id)
+   (PARTITION p0 VALUES IN (2, 4),
+    PARTITION p1 VALUES IN (42, 142));
+INSERT INTO t1 VALUES (2);
+--error ER_NO_PARTITION_FOR_GIVEN_VALUE
+UPDATE t1 SET id=5 WHERE id=2;
+DROP TABLE t1;
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index c8e48c43bee49674c1a47b5cac0367f1e28b6082..332e39648b17f46bba698022713b75e04935b616 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -5988,8 +5988,11 @@ void ha_ndbcluster::print_error(int error, myf errflag)
   DBUG_PRINT("enter", ("error = %d", error));
 
   if (error == HA_ERR_NO_PARTITION_FOUND)
+  {
+    char buf[100];
     my_error(ER_NO_PARTITION_FOR_GIVEN_VALUE, MYF(0),
-             (int)m_part_info->part_expr->val_int());
+             llstr(m_part_info->part_expr->val_int(), buf));
+  }
   else
     handler::print_error(error, errflag);
   DBUG_VOID_RETURN;