diff --git a/cmd/ifupdown.c b/cmd/ifupdown.c
index ad20df4..e08feee 100644
--- a/cmd/ifupdown.c
+++ b/cmd/ifupdown.c
@@ -96,6 +96,9 @@ acquire_state_lock(const char *state_path, const char *lifname)
 bool
 skip_interface(struct lif_interface *iface, const char *ifname)
 {
+	if (iface->is_template)
+		fprintf(stderr, "%s: cannot change state on %s (template interface)\n", argv0, ifname);
+
 	if (exec_opts.force)
 		return false;