Hi,
The documentation of the bukkit is not the same as the implementations in spigot.
In the documentation, for Plugin#saveDefaultconfig() it says
Saves the raw contents of the default config.yml file to the location retrievable by getConfig(). If there is no default config.yml embedded in the plugin, an empty config.yml file is saved. This should fail silently if the config.yml already exists.
But, if there is no default config.yml in the plugin jar, it throws an IllegalArgumentException.