I had this same issue and WooCommerce support directed me to check the
“Allow $0 initial checkout without a payment method” option under WooCommerce > Settings > Subscriptions. After enabling that setting, I was able to check out successfully with a subscription product and 100% discount code applied. Hope this works for others experiencing this issue.