When using a Custom Destination that is fairly long (more than 50 characters) as a destination within an IVR, the IVR will always truncate the text (preventing the desired behavior) and throw a Bad Dest error.
Looking at the MySQL schema, it appears that the custom_dest column in the custom_destinations table allows up to 80 characters for the destination. While in the ivr_dests table, the dest column only allows 50 characters.
mysql> show columns from custom_destinations;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| custom_dest | varchar(80) | NO | PRI | | |
| description | varchar(40) | NO | | | |
| notes | varchar(255) | NO | | | |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> show columns from ivr_dests;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| ivr_id | int(11) | NO | | NULL | |
| selection | varchar(10) | YES | | NULL | |
| dest | varchar(50) | YES | | NULL | |
| ivr_ret | tinyint(1) | NO | | 0 | |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
This appears to allow working past the problem:
alter table ivr_dests change dest dest varchar(80);