Turns out Azure doesn't like hyphens in table names, and only has a single error message for all possible problems.
Hm, thinking about it, the table name belongs in the configuration storage too. Feels wrong to be hard-coded.
Create the subscription if it doesn't exist (service will now run correctly)