diff --git a/sv.c b/sv.c
index dc3bbdc3fdf6..b494343af034 100644
--- a/sv.c
+++ b/sv.c
@@ -13081,8 +13081,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                 if (!veclen)
                     goto done_valid_conversion;
                 if (vec_utf8)
-                    uv = utf8n_to_uvchr(vecstr, veclen, &ulen,
-                                        UTF8_ALLOW_ANYUV);
+                    uv = utf8_to_uv_or_die(vecstr, vecstr + veclen, &ulen);
                 else {
                     uv = *vecstr;
                     ulen = 1;