diff --git a/pointblank/validate.py b/pointblank/validate.py
index eb4eec4c..534c3032 100644
--- a/pointblank/validate.py
+++ b/pointblank/validate.py
@@ -8458,7 +8458,7 @@ def _step_report_row_based(
symbol_right = ">" if inclusive[1] else "≥"
text = f"{column} {symbol_left} {values[0]}, {column} {symbol_right} {values[1]}
"
elif assertion_type == "col_vals_in_set":
- elements = ", ".join(values)
+ elements = ", ".join(map(str, values))
text = f"{column} ∈ {{{elements}}}
"
elif assertion_type == "col_vals_not_in_set":
elements = ", ".join(values)
diff --git a/tests/test_validate.py b/tests/test_validate.py
index a64036f9..fd661be2 100644
--- a/tests/test_validate.py
+++ b/tests/test_validate.py
@@ -5442,6 +5442,7 @@ def test_get_step_report_no_fail(tbl_type):
.col_vals_ge(columns="d", value=500)
.col_vals_between(columns="a", left=2, right=10)
.col_vals_outside(columns="a", left=7, right=20)
+ .col_vals_in_set(columns="a", set=[1, 2, 3, 4, 5])
.col_vals_in_set(columns="f", set=["low", "mid", "high"])
.col_vals_not_in_set(columns="f", set=["l", "mid", "m"])
.col_vals_null(columns="b")