Inconsistent JavaScript error when tapping

Whenever my test fails, I notice it’s due to a javascript error on a tap. What could cause this? Should I be waiting longer? Use click instead of tap? Important to note is that this doesn’t happen every time. The tests usually pass, but whenever they fail, it is almost always because of this javascript error caused by trying to tap an element. I’d like to figure this out so I can have more consistent tests.

Error log:
org.openqa.selenium.WebDriverException: An error occurred while executing user supplied JavaScript. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 588 milliseconds
Build info: version: ‘2.47.1’, revision: ‘411b314’, time: ‘2015-07-30 02:56:46’
System info: host: ‘[OMITTED]’, ip: ‘[OMITTED]’, os.name: ‘Windows 8.1’, os.arch: ‘amd64’, os.version: ‘6.3’, java.version: ‘1.8.0_60’
Driver info: io.appium.java_client.ios.IOSDriver
Capabilities [{app=[OMITTED], networkConnectionEnabled=false, warnings={}, databaseEnabled=false, deviceName=iPhone 6, platform=MAC, desired={app=[OMITTED], platformVersion=8.3, platformName=iOS, deviceName=iPhone 6}, platformVersion=8.3, webStorageEnabled=false, locationContextEnabled=false, browserName=iOS, takesScreenshot=true, javascriptEnabled=true, platformName=iOS}]
Session ID: [OMITTED]
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:27)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
at io.appium.java_client.AppiumDriver.performTouchAction(AppiumDriver.java:380)
at io.appium.java_client.MultiTouchAction.perform(MultiTouchAction.java:75)
at io.appium.java_client.AppiumDriver.tap(AppiumDriver.java:407)