There are a few possible causes of / solutions to this error, some of which are detailed in previous responses. To hopefully help people coming across this as I did, I'll aggregate the solutions and add the one that worked in my case (adding .plist to the filename).
For sake of example, let's say we're adding a launch agent for the user "johnny" whose service name is "com.appleseed.runthings".
Make sure your filename ends in .plist, e.g. /Users/johnny/Library/LaunchAgents/com.appleseed.runthings.plist
Check the syntax of the file: plutil /Users/johnny/Library/LaunchAgents/com.appleseed.runthings.plist
Unload and reload your service:
launchctl unload /Users/johnny/Library/LaunchAgents/com.appleseed.runthings.plist
launchctl load /Users/johnny/Library/LaunchAgents/com.appleseed.runthings.plist
Force load in case your job has been disabled: launchctl load -w /Users/johnny/Library/LaunchAgents/com.appleseed.runthings.plist
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags: