ariya/phantomjs

Operation canceled on some pages

Guigoz opened this issue ยท 106 comments

Hello,

I'm experiencing some issues with phantomJS when trying to render some Urls.
It works well for 99% of the requested urls but some are not working and i'm getting the "Operation canceled" error.

To reproduce the error you can use this simple script :

var webPage = require('webpage');
var page = webPage.create();

page.viewportSize = { width: 1920, height: 1080 };
page.open("http://www.thalesgroup.com", function start(status) {
  page.render('screenshot.jpeg', {format: 'jpeg', quality: '100'});
  phantom.exit();
});

It will produce the following result.

phantomjs-1.9.8-linux-x86_64/bin/phantomjs --debug=true --ignore-ssl-errors=yes --web-security=no --ssl-protocol=any simpleRender.js 
2014-11-17T15:18:32 [DEBUG] CookieJar - Created but will not store cookies (use option '--cookies-file=<filename>' to enable persisten cookie storage) 
2014-11-17T15:18:32 [DEBUG] Phantom - execute: Configuration 
2014-11-17T15:18:32 [DEBUG]      0 objectName : "" 
2014-11-17T15:18:32 [DEBUG]      1 cookiesFile : "" 
2014-11-17T15:18:32 [DEBUG]      2 diskCacheEnabled : "false" 
2014-11-17T15:18:32 [DEBUG]      3 maxDiskCacheSize : "-1" 
2014-11-17T15:18:32 [DEBUG]      4 ignoreSslErrors : "true" 
2014-11-17T15:18:32 [DEBUG]      5 localToRemoteUrlAccessEnabled : "false" 
2014-11-17T15:18:32 [DEBUG]      6 outputEncoding : "UTF-8" 
2014-11-17T15:18:32 [DEBUG]      7 proxyType : "http" 
2014-11-17T15:18:32 [DEBUG]      8 proxy : ":1080" 
2014-11-17T15:18:32 [DEBUG]      9 proxyAuth : ":" 
2014-11-17T15:18:32 [DEBUG]      10 scriptEncoding : "UTF-8" 
2014-11-17T15:18:32 [DEBUG]      11 webSecurityEnabled : "false" 
2014-11-17T15:18:32 [DEBUG]      12 offlineStoragePath : "" 
2014-11-17T15:18:32 [DEBUG]      13 offlineStorageDefaultQuota : "-1" 
2014-11-17T15:18:32 [DEBUG]      14 printDebugMessages : "true" 
2014-11-17T15:18:32 [DEBUG]      15 javascriptCanOpenWindows : "true" 
2014-11-17T15:18:32 [DEBUG]      16 javascriptCanCloseWindows : "true" 
2014-11-17T15:18:32 [DEBUG]      17 sslProtocol : "any" 
2014-11-17T15:18:32 [DEBUG]      18 sslCertificatesPath : "" 
2014-11-17T15:18:32 [DEBUG]      19 webdriver : ":" 
2014-11-17T15:18:32 [DEBUG]      20 webdriverLogFile : "" 
2014-11-17T15:18:32 [DEBUG]      21 webdriverLogLevel : "INFO" 
2014-11-17T15:18:32 [DEBUG]      22 webdriverSeleniumGridHub : "" 
2014-11-17T15:18:32 [DEBUG] Phantom - execute: Script & Arguments 
2014-11-17T15:18:32 [DEBUG]      script: "simpleRender.js" 
2014-11-17T15:18:32 [DEBUG] Phantom - execute: Starting normal mode 
2014-11-17T15:18:32 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/_coffee-script.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/package.json" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/coffee-script.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/./lexer.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/././rewriter.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/././helpers.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/./parser.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/./helpers.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/./nodes.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/././scope.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/./././helpers.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/././lexer.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/../coffee-script/./lib/coffee-script/./././rewriter.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:32 [DEBUG] WebPage - updateLoadingProgress: 10 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 16 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 19 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 21 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 27 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 31 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 37 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 40 
2014-11-17T15:18:35 [DEBUG] WebPage - updateLoadingProgress: 42 
2014-11-17T15:18:35 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:35 [DEBUG] CookieJar - Saved "has_js=1; domain=www.thalesgroup.com; path=/" 
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 45 
2014-11-17T15:18:36 [DEBUG] CookieJar - Saved "has_js=1; domain=www.thalesgroup.com; path=/" 
2014-11-17T15:18:36 [DEBUG] CookieJar - Saved "context_breakpoints=none; domain=www.thalesgroup.com; path=/" 
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 100 
2014-11-17T15:18:36 [DEBUG] Network - Resource request error: 5 ( "Operation canceled" ) URL: "https://secure.leadforensics.com/Track/Capture.aspx?trk_user=26055&trk_sw=1024&trk_sh=768&trk_ref=&trk_tit=Thales Group&trk_loc=https://www.thalesgroup.com/en&trk_agn=Netscape&trk_agv=Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.8 Safari/534.34.lfcd32.lflngfr-FR&trk_dom=www.thalesgroup.com&trk_guid=1e390c06-f5a3-41e8-bc51-d4a46952b54e&trk_cookie=NA" 
2014-11-17T15:18:36 [DEBUG] Network - Resource request error: 5 ( "Operation canceled" ) URL: "https://www.google-analytics.com/analytics.js" 
2014-11-17T15:18:36 [DEBUG] Network - Resource request error: 5 ( "Operation canceled" ) URL: "https://www.thalesgroup.com/sites/default/files/js/js_3gTGsabd1RPSpnBDnrFkHoY_7DsRs04arZaXhxjiyHY.js" 
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 10 
2014-11-17T15:18:36 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/_coffee-script.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 10 
2014-11-17T15:18:36 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/_coffee-script.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r") ) )  
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 100 
2014-11-17T15:18:36 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:36 [DEBUG] Network - Resource request error: 5 ( "Operation canceled" ) URL: "https://www.thalesgroup.com/en" 
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 100 
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 10 
2014-11-17T15:18:36 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:36 [DEBUG] WebPage - updateLoadingProgress: 100 
2014-11-17T15:18:36 [DEBUG] WebPage - setupFrame "" 
2014-11-17T15:18:36 [DEBUG] CookieJar - Purged (session) "context_breakpoints=none; domain=www.thalesgroup.com; path=/" 
2014-11-17T15:18:36 [DEBUG] CookieJar - Purged (session) "has_js=1; domain=www.thalesgroup.com; path=/" 

Thanks for your help.
Guillaume.

I see the same thing with a build of PhantomJS 2.0. Given the nature of Thales Group, perhaps they just have some safeguards in place against this sort of scraping.

That's not some sort of special protection. Curl works just fine with no additional configuration, even the UA String.
Stracing the process didn't gave me any advice. Perhaps someone knows a good way to debug PhantomJS website-related bugs...

I'm experiencing this as well with Linux x86_64 PhantomJS 1.9.8 and PhantomJS 2.0. It doesn't happen all the time, but I'll get an "Operation canceled" on the request with id === 1.

Network - Resource request error: 5 ( "Operation canceled" )
I have such trouble too (dev 2.0.0)

๐Ÿ‘

same here...

I cannot understand what is really trouble? I made simple app on qt5 with Qt5.4 and QWebView and my url loaded successfull.

tgt commented

I also have the same issue with various websites. For example, http://www.bbc.co.uk/ fails when fetching it through an HTTP proxy, but can be fetched successfully without a proxy.

Is ther any information I can provide that'll help you diagnose the issue?

Happened to me as well. I had a page containing multiple IFRAMEs, and the script attempted a series of requests by clicking links in one IFRAME, causing a refresh on another IFRAME. Each "click" on a link in the menu IFRAME was preceded by a call to "switchToFrame", and then the actual "click" on the link (using page.evaluate).

Once I added a "switchToMainFrame" right after the "page.evaluate", the problem disappeared for me.

Is this issue solved yet? I am getting the same error

i also getting it on some pages

I am also getting this issue about 50% of the time my script runs. My script deals with a website with around 25 iframes and am using switchToFrame multiple times to get into nested iframes.

Oddly enough the onResourceError url is always a image. However it may be because the website loads mostly images with ajax the the probability of getting another resource is low.

Note, I'm on Arch Linux with phantomJS 2.0

@mattlyons0 Exactly, I am facing the same issue, which is leading me to lots of unnecessary error.

I have the same trouble, on many pages. This trouble reproduced on versions: 1.9.8, 2.0.0, 2.0.1-dev.
And sometimes i catch another problem "Segmentation fault" :((

Anybody have idea how to solve this problem ? I suffer 2 weeks with this bugs

Me also facing same issue, it stops at such error Resource request error: 5 ( "Operation canceled" ) URL: "https://www.google-analytics.com/analytics.js"

I am getting this as well - Phantom 2.0.0 OSX 10.10.5
2015-12-18T16:51:17 [DEBUG] Network - Resource request error: 5 ( "Operation canceled" ) URL: "http://www.google.com/uds/?file=visualization&v=1.0&packages=corechart"

Any advice or feedback?

Hello guys, I am facing similar issues and it seems to be related to redirection, since direct loading of the url works. Any idea why this could be happening?

I have this error - PhantomJS 2.0.0, Centos 7
[DEBUG - 2015-12-28T13:02:29.231Z] Session [3959c460-ad63-11e5-81ae-c570b6e5ae25] - page.onResourceError - {"errorCode":5,"errorString":"Operation canceled","id":57,"status":null,"statusText":null,"url":"https://mc.yandex.ru/webvisor/14067460?rn=398363363&page-url=http%3A%2F%2Fjob.ukr.net%2F&wmode=0&wv-type=0&wv-hit=260517100&wv-part=2&wv-check=3341&browser-info=z%3A120%3Ai%3A20151228150224%3Arqnl%3A1%3Ast%3A1451307749%3Au%3A145130774598162282"}

any solution with this problem?

After some tinkering, my root cause was initiating async work after the complete event has been fired. I'm not sure if there's a better time in the lifecycle to try to bring in async resources (I was trying to load Google Charts, since it doesn't allow me to inline the JavaScript library). I wound up setting the page content to include the resource request as a script tag and this issue stopped for me, but your milage and root cause may vary.
My hunch is this is open requests getting killed after the renderer is done.

I am seeing this when the page loads Javascript through the CloudFront CDN. When Javascript is loaded from the same host I don't get the "operation canceled" errors.

csman commented

I switched from phantomjs 1.9 to 2.1 and I'm getting murdered by this error. No websites work. Zero. Every website dies with this:

2016-02-19T07:41:00 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" )

I updated QT to 5.5, same thing. Anyone??

zackw commented

None of us devs have been able to reproduce this bug. It must be caused by something about the environment in which y'all are running the tests. We are going to need you to tinker with your environment and try to find out what triggers it. Unfortunately, I don't have the least idea what could be the problem.

Please note that PhantomJS is statically linked against Qt (we have to do this, our copy of Qt is nontrivially modified) and therefore upgrading the system copy of Qt will never make anything change. 2.1 is already using Qt 5.5.

Hello,

we too have been struggling a lot with this issue. We're on RHEL using PhantomJS 2.1.1. The application is AngularJS-based with require loading lots of modules simultaneously. The problem for us always occurred at startup when one (random) module failed to load due to the cancelled network operation, breaking the app.
I liked the theory put forth by apelican, however when I tried to put a long-loading image request (5s) into the markup it did not help. On the contrary, afterwards I observed complete hangers. So it is probably not the renderer killing pending requests.

However, some observations and a workaround for our case: Not sure where exactly the issue lies, maybe a race condition or a concurrent request overload?
The problem often occurred when running in a setup where Tomcat 7 was serving the app, testing code (Java WebDriver) and hosted app on the same machine.
When configuring an HTTP proxy for the PhantomJS driver with --proxy the problem never occurred (this is our workaround: we a start a Jetty-based HTTP proxy and route all requests through it - we have not seen any aborted requests). We also used the Paros proxy experimentally and did not observe the problem. Either the proxy slows things down sufficiently (if it is a race condition), or the PhantomJS code takes a different non-problematic route for handling requests. The problem also did not occur when we used the simple Python HTTP server to serve the app from the file system (instead of through Tomcat).

We've analysed the logs of the app server and can only conclude that in problem cases the requests never reached the app server.

Hope this helps...

I am getting the same behavior. I am able to make about 5 successful page requests. On my 6th request, however, I get a resource error and all subsequent requests fail with Error Code 5 / "Operation Cancelled". Is this the same issue? Can I clear out previous errors?

Hi. Please try this - #10389 (comment)

PhantomJS does not correct processes some of redirects

cajus commented

I am getting the same. But only on travis-ci. The tests are running fine locally with the same static version of phantomjs (latest). On travis, I'm getting random failures like this (complete log):

Runing tests for qx.test.bom.History
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 10
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 50
2016-03-15T09:48:31 [DEBUG] WebPage - setupFrame ""
000049 qx.core.Init: Load runtime: 49ms
000058 Waiting for tests
2016-03-15T09:48:31 [DEBUG] WebPage - setupFrame "<!--framePath //<!--frame0-->-->"
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 50
000061 Loading tests...
000061 qx.core.Init: Main runtime: 12ms
000063 qx.core.Init: Finalize runtime: 1ms
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 50
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 60
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 69
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:31 [WARNING] QIODevice::write (QTcpSocket): device not open
2016-03-15T09:48:31 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:32 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:32 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:32 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:32 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:32 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:32 [DEBUG] WebPage - updateLoadingProgress: 90
2016-03-15T09:48:33 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "http://127.0.0.1:31324/framework/source/class/qx/data/SingleValueBinding.js?nocache=0.9663659152574837"
2016-03-15T09:48:33 [DEBUG] WebPage - updateLoadingProgress: 100

Here is the script I'm using to do the run.

@zackw : I'm not familar with QT network programming at all. What does "device not open" mean and what can be the cause? Is there anything that I can do to debug the problem?

zackw commented

@cajus I am not familiar with Qt network programming at all myself. I found that error message in the code, and it appears to be generated when something tries to write to a network socket that hadn't been fully initialized; however, that doesn't tell me who did that or why or how the socket got into that state. It smells to me like Webkit is not talking to Qt correctly -- but without a reliable reproducer that works on my machine this is as far as I can go.

cajus commented

@zackw ok ;-) Sounded like you were involved into that stuff. If I could reproduce it locally, there would be much more ways to debug than on that remote docker stuff without any access. Lets see...

I am getting this as well. PhantomJS v2.1.1. Ubuntu 14.04 64bit. CasperJS v1.1.0-beta5.
Below is simple script showing this behaviour.

Please set correct email & password before testing.
http://pastebin.com/bRRRkvDa

Command:
casperjs --engine=phantomjs --ignore-ssl-errors=yes --ssl-protocol=any --debug=true bug-test.js

After switching to --engine=slimerjs it works.

@cajus I hope it will help you.

FWIW, I'm getting this, too. It's happening with POSTs to a FuseAction, but not all the time. It happens with current 2.2.0-development built locally, but does not happen with 1.9.8. It happens on Windows 10, but does not happen on OS X 10.11. I'm using current casperjs master built locally. When it happens, execution continues for a while, but it eventually results in a casper step timeout and gets stuck.

I have WireShark captures of it happening and not happening and I'm still investigating.

I have an idea what's happening in my case. I believe the cancelled operations are pending when navigation to a new page is requested. This makes sense and shouldn't be a problem, but it looks like it occasionally cancels a POST after the headers are written and before the content. I can see the headers in Wireshark, but none of the content. The stream stays open until much later when the process is terminated, at which point the client does a FIN and the server replies with a 504 GATEWAY_TIMEOUT with Connection: Close.

The process terminates after a later page load never completes and a casper step times out. My guess is that it's trying to reuse the kept-alive HTTP connection and can't write the new request because the old request hasn't finished, so it times out.

@vitallium Is it plausible that a Qt HTTP stream could behave this way (cancel an HTTP request between the headers and content, then get stuck trying to use the stream for a future request)? I'm heading into the source, but I'd appreciate your thoughts.

I've attached a packet capture with an example.

cancel and gateway timeout.pcapng.zip

gsouf commented

@zackw I made some investigations and found something that might be interesting for you.

I could actually reproduce the error.

I cant tell if it is what happens in every situation, but that basically works for me. (or should I tell fail? ๐Ÿ˜„)

Everything is about the setting headers. More specifically it will fail when setting the Host header.

TLDR: Removing the host header will work everytime!

A Working example

Executing phantomjs with this file will work:

"use strict";
var page = require('webpage').create();
var lastResourceError = null;

page.onResourceError = function (resourceError) {
    console.log("Url errored: " + resourceError.url);
    console.log("message : " + resourceError.errorString);
    console.log("------")
};

var settings = {
}

var url = "https://www.wikipedia.org/";

page.open(url, settings, function (status) {
    if (status !== 'success') {
        console.error('Error');
        phantom.exit(1);
    } else {
        console.log(page.plainText);
        phantom.exit();
    }
});

Reproduce the error

now replace the settings variable to this:

var settings = {
    "headers": {
        "Host": "wikipedia.org"
    }
}

var url = "https://www.wikipedia.org/";

And execute that will fail

Using a different host will work

Now replace the setting to a different host, and that will work (though the server returns a domain error):

var settings = {
    "headers": {
        "Host": "google.com"
    }
}

var url = "https://www.wikipedia.org/";

Host redirection will also fail

Querying google with different existing tld will fail (google redirects to the tld in the host)

var settings = {
    "headers": {
        "Host": "google.fr"
    }
}

var url = "https://www.google.com/";

(redirect to google.fr then fails)

Some cases willl work

I found a case in which it works: with the website getcomposer.org. Maybe is it due to what resources are loaded or not on the page.

The two following examples work:

var settings = {
}

var url = "https://getcomposer.org";
var settings = {
    "headers": {
        "Host": "getcomposer.org"
    }
}

var url = "https://getcomposer.org";

But for some reasons this will also fail (operation cancelled)

var settings = {
    "headers": {
        "Host": "foo.bar"
    }
}

var url = "https://getcomposer.org";

As a side note for this last example, I tried it in chrome leads to a loop redirection.

Page with no resource

Last note: trying this on a page that does not load much resources (http://httpbin.org/get) seems to work in every cases.

zackw commented

@gsouf Screwing with the Host header is a weird thing to do, I suspect Qt can't be persuaded to support it, and I doubt that other people seeing this problem are doing it. I filed #14164 so we can discuss it separately.

@Guigoz et al.: Are you screwing with the Host header? If so, please explain why.

I'm getting the same. I can reproduce this error almost all the time with some urls~
This urls will request another link for data. And that link for data will always failed with this error~

Same thing happening for me too. Using node:argon container (debian) and node-horseman.
This fucks up my whole app.
Also, this throws me mongoose's Error 403: Directory Listing Denied

Here is an absolutely trivial example that Phantom cannot deal with:

<html>
<head>
  <script>
        var a = document.createElement("a");
        a.href = '/target.php';
        a.click();
    </script>
</head>
<body>Index page</body>
</html>

You would expect the browser to be redirected to target.php. This works in Chrome, for example.

Phantom does this (notice Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "http://dev-phantom-failure-sample.pantheonsite.io/target.php"):

I have hosted this example here for testing: http://dev-phantom-failure-sample.pantheonsite.io/index.php

2016-06-10T12:01:07 [DEBUG] CookieJar - Created but will not store cookies (use option '--cookies-file=<filename>' to enable persistent cookie storage)
2016-06-10T12:01:07 [DEBUG] Set  "http"  proxy to:  "" : 1080
2016-06-10T12:01:07 [DEBUG] Phantom - execute: Configuration
2016-06-10T12:01:07 [DEBUG]      0 objectName : ""
2016-06-10T12:01:07 [DEBUG]      1 cookiesFile : ""
2016-06-10T12:01:07 [DEBUG]      2 diskCacheEnabled : "false"
2016-06-10T12:01:07 [DEBUG]      3 maxDiskCacheSize : "-1"
2016-06-10T12:01:07 [DEBUG]      4 diskCachePath : ""
2016-06-10T12:01:07 [DEBUG]      5 ignoreSslErrors : "false"
2016-06-10T12:01:07 [DEBUG]      6 localUrlAccessEnabled : "true"
2016-06-10T12:01:07 [DEBUG]      7 localToRemoteUrlAccessEnabled : "false"
2016-06-10T12:01:07 [DEBUG]      8 outputEncoding : "UTF-8"
2016-06-10T12:01:07 [DEBUG]      9 proxyType : "http"
2016-06-10T12:01:07 [DEBUG]      10 proxy : ":1080"
2016-06-10T12:01:07 [DEBUG]      11 proxyAuth : ":"
2016-06-10T12:01:07 [DEBUG]      12 scriptEncoding : "UTF-8"
2016-06-10T12:01:07 [DEBUG]      13 webSecurityEnabled : "true"
2016-06-10T12:01:07 [DEBUG]      14 offlineStoragePath : ""
2016-06-10T12:01:07 [DEBUG]      15 localStoragePath : ""
2016-06-10T12:01:07 [DEBUG]      16 localStorageDefaultQuota : "-1"
2016-06-10T12:01:07 [DEBUG]      17 offlineStorageDefaultQuota : "-1"
2016-06-10T12:01:07 [DEBUG]      18 printDebugMessages : "true"
2016-06-10T12:01:07 [DEBUG]      19 javascriptCanOpenWindows : "true"
2016-06-10T12:01:07 [DEBUG]      20 javascriptCanCloseWindows : "true"
2016-06-10T12:01:07 [DEBUG]      21 sslProtocol : "default"
2016-06-10T12:01:07 [DEBUG]      22 sslCiphers : "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:RC4-SHA:RC4-MD5"
2016-06-10T12:01:07 [DEBUG]      23 sslCertificatesPath : ""
2016-06-10T12:01:07 [DEBUG]      24 sslClientCertificateFile : ""
2016-06-10T12:01:07 [DEBUG]      25 sslClientKeyFile : ""
2016-06-10T12:01:07 [DEBUG]      26 sslClientKeyPassphrase : ""
2016-06-10T12:01:07 [DEBUG]      27 webdriver : ":"
2016-06-10T12:01:07 [DEBUG]      28 webdriverLogFile : ""
2016-06-10T12:01:07 [DEBUG]      29 webdriverLogLevel : "INFO"
2016-06-10T12:01:07 [DEBUG]      30 webdriverSeleniumGridHub : ""
2016-06-10T12:01:07 [DEBUG] Phantom - execute: Script & Arguments
2016-06-10T12:01:07 [DEBUG]      script: "phantom/phantom_screenshot.js"
2016-06-10T12:01:07 [DEBUG]      0 arg: "1000"
2016-06-10T12:01:07 [DEBUG]      1 arg: "800"
2016-06-10T12:01:07 [DEBUG]      2 arg: "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
2016-06-10T12:01:07 [DEBUG]      3 arg: "test.png"
2016-06-10T12:01:07 [DEBUG] Phantom - execute: Starting normal mode
2016-06-10T12:01:07 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:07 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:07 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:07 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T10:01:07 [INFO] Initial URL: http://dev-phantom-failure-sample.pantheonsite.io/index.php
2016-06-10T10:01:07 [INFO] Target file: test.png
2016-06-10T10:01:07 [INFO] No Basic Auth in environment
2016-06-10T12:01:07 [DEBUG] WebPage - updateLoadingProgress: 10
2016-06-10T12:01:08 [DEBUG] CookieJar - Saved "NO_CACHE=1; domain=dev-phantom-failure-sample.pantheonsite.io; path=/"
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 30
2016-06-10T10:01:08 [INFO] URL changed to: http://dev-phantom-failure-sample.pantheonsite.io/index.php
2016-06-10T12:01:08 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 100
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 10
phantomjs failed to reach url2016-06-10T12:01:08 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:08 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "http://dev-phantom-failure-sample.pantheonsite.io/target.php"
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 100
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 10
2016-06-10T10:01:08 [INFO] URL changed to: about:blank
2016-06-10T12:01:08 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 100
2016-06-10T12:01:08 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:08 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:08 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:08 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 10
2016-06-10T12:01:08 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:08 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:08 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:08 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2016-06-10T12:01:08 [DEBUG] WebPage - updateLoadingProgress: 100
2016-06-10T10:01:08 [INFO] Document ready, waiting: 3000 ms before taking screenshot
2016-06-10T12:01:08 [DEBUG] WebPage - setupFrame ""
2016-06-10T12:01:08 [DEBUG] CookieJar - Purged (session) "NO_CACHE=1; domain=dev-phantom-failure-sample.pantheonsite.io; path=/"

I am also getting this error continuosly error code: 5, description: Operation canceled

I fixed it by closing the page and recreating page whenever i visit another website.

I have a very "hacky" workaround for this. I am not quite sure why this works or more to the point why it is failing in the first place, but what I can see happening is the following:

I am opening a page and it is going off and fetching all the resources that it needs. Once the Page.onLoadFinished event is called, I am injecting a script that is doing all my DOM work. If for whatever reason, one of the resources that the page is loading fails before my DOM script has finished, then the script will abort and I will not get the data that I need.

After studying the actual resources that are causing the onResourceError event, I seem to have so far tracked it down to a few common culprits. At the moment "adzerk.net, facebook.com, doubleclick, adition.com and quantserve.com". As these are the ones that keep coming up, i have used the onResourceRequest event to redirect the url and simply ping a blank page on my website. This way the flow continues and my injected script is able to finish without any problems. I have also noticed that if I give the server enough juice and shut everything else down, then usually my script can finish before there is an issue (without the need to redirect the url).

Sorry if this seems to be a bit of a cowboy approach, but my first impressions are that this is something to do with authentication cookies. I don't really have any idea why they would not be processed in the same way a normal web-page is. Hope this makes sense :)

My feeling is that this bug should be reproducible if the injected script is fairly heavy and takes a while, allowing one of the resources such as the "adzerk" resources that are loaded in this page fail:

http://stackoverflow.com/questions/1200214/how-can-i-measure-the-speed-of-code-written-in-php

foby commented

Disabling web security fixed it for me (--web-security=false).
I use phantomJS Version 2.1.1 with in-memory cache on an AWS EC2 linux machine.

After some tinkering, my root cause was initiating async work after the complete event has been [...] My hunch is this is open requests getting killed after the renderer is done.

^^ This.

Certain header settings can indeed trigger this bug. I found a strange case.

This fails for certain domains:

page.settings.userAgent = USER_AGENT;

while this equivalent code works perfectly:

page.customHeaders = { 'User-Agent': USER_AGENT };

Failure only happens with certain domains, but consistently so.

It might have to do with header order, or with customHeaders being passed to sub-resources, but userAgent not?

I wonder if it is in any way related to PhantomJS detection based on header order. I can make some requests work by manually setting the correct host header (related to this comment).

I've created a test that aims to reproduce this error. It tries to load a subset of the Alexa top 500 websites through separate invocations of PhantomJS, and prints whether this works. I have chosen the subset such that it includes websites that have caused trouble on my machines before.

There are two variations of the test:
A. open the page and report the status
B. open the page twice and report the status of the second time

The results on my machine (OS X 10.9.5) are as follows:

test success failure โ€ฆdue to โ€œoperation canceledโ€ crash
A 35 41 32 4
B 48 24 15 7

To test, clone the gist and execute ./run.

ariya commented

@RubenVerborgh I appreciate the test setup. While test volume is important, in this particular case, what's useful is a reduced test case that can be verified in a isolated environment. The previous excellent test case from @marktheunissen fits into this criteria, alas I haven't been able to reproduce it.

@ariya Hey there, does my test case not reproduce the bug for you?

@ariya The purpose of my test setup is not volume, but to find reproducible test cases on your environment.

The problem in this bug is that some sites cause an issue on some machines, and some sites do not. When you run my test, it will return the list of sites for which the bug occurs on your machine; you can continue with any failing site to create a reduced test case for your specific isolated environment.

So could you please try to run it to see whether the bug indeed occurs at least once? We could then continue to reduce the the failing test case for your setup.

This is a 2 year old bug. It's frustrating to see lack of progress on this due to test case requirements. @ariya maybe you can have a try with @RubenVerborgh solid approach at getting you a reproducible case?

I was able to track this "bug". Here is events:

  1. Resource requested. Async using ajax.
  2. Then my script was saving result page to file and executed: phantom.exit(0);
  3. "Operation canceled" on some resources.

This happens due to slow server responses. When I put my phantom.exit(0) into:
window.setTimeout(function () {}, 10000); Everything went smoothly.

I suggest having some map of requested resources. Once resource received, remove it's url from that map. In "onLoadFinished" periodically wake up to check if map is empty.

@dernasherbrezon That doesn't seem to apply to the original testcase. There, the sequence is:

  1. Resource X requested
  2. open callback returns "fail" (because "operation cancelled" already occurred)
  3. phantom.exit()

So a timeout will not help there.

Another thing I noticed is that it seems to happen on pages with a lot of resources. Maybe there are too many concurrent requests, and some get cancelled?

ariya commented

@ariya Hey there, does my test case not reproduce the bug for you?

I could not reproduce the problem with your test case @marktheunissen.

ariya commented

This is a 2 year old bug.

Hmm, why's the age of the bug relevant here? It could be 5 years if nobody is (keen on) working it.

It's frustrating to see lack of progress on this due to test case requirements.

But how's someone supposed to investigate the problem if there is no reproducible simple test case?

@ariya If I provide a Docker image that reproduces the problem, will you pull it and run it? Docker is available for Mac and Linux.

Hi @ariya I have noticed that it always seems to be the same sub-resources that are causing the "operation cancelled" message. Nearly always it is things like "adzerk.com, doubleclick, adition.com and quantserve.com". It also only seems to happen when I am running a large number of DOM manipulation scripts on the main resource. I'm not really sure how to prepare a test case for you, but i figure either it is something about the way that these resources are being redirected as they are loaded from the main resource or it might be that these resources have some kind of "adblocker" detection that scans the main resource to check that all of their advert elements are present (and when phantom scripts skip/remove some of these elements) it cancels the request.

For my own purposes, generally the content that is returned from these specific resources is of no value what-so-ever, so I am checking each resource and if it is one of these resources, i am simply redirecting it to a dummy resource that I am self-hosting. At the moment, this is working for me and seems to be somewhat reliable. I hope this helps as it does seem strange that it is always the same kind of sub-resources that running into this problem.

ariya commented

@marktheunissen @RubenVerborgh Unfortunately, I got millions others things I need to work on. Unless it's a quickly reproducible reduced/simple test case, it's very likely that I will prioritize other PhantomJS development tasks.

h12w commented

I've encountered the same issue. Just as @RubenVerborgh said, it is due to time out and phantom.exit before the URL can be fetched. I increase the timeout value and it just works again.

I found a url with a seemingly slow server:

http://www.artisanbreadinfive.com/
https://gtmetrix.com/reports/www.artisanbreadinfive.com/KthlYUyU

I don't want to further thrash these guys server but try to run a phantomjs scrape and download the page. This is what my logs looks like after about 20 minutes of trying

attempting to download [http://www.artisanbreadinfive.com/]
loading page...
loading page...
loading page...
loading page...
[object Object]
[object Object],[object Object]
[object Object]
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":495,"status":200,"statusText":"OK","url":"http://pagead2.googlesyndication.com/activeview?avi=BWWptvSm-V97BDcq68AW78L7YAQAAAAAQATgB4AQCiAWX59gEoAY-&id=lidartos&v=478&adk=1&p=643,1125,897,1425&tos=29086,0,0,0,0&mtos=29086,29086,29086,29086,29086&rs=5&tfs=381&tls=29467&mc=1&lte=1&bas=0&bac=0&r=u&bs=1920,1080&bos=-12245933,-12245933&ps=1920,40185&ss=1024,768&tt=29088&pt=379&deb=1-1-1-7-35-2&tvt=29086&iframe_loc=http%3A%2F%2Fleitesculinaria.com%2F93789%2Frecipes-5-minute-artisan-bread.html&is=300,250"}
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":605,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=4002139334813145011:1472080322639&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=25413&foc=1&adt=25411&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":1,"errorString":"Connection refused","id":563,"status":null,"statusText":null,"url":"https://cms.yax.yahoo.com/ack?eid=ac1bf364-022d-0c1c-fe57-5897adf917a4&xid=oGnbsmCFv8t5tiuP4Ke.ftfS"}
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":650,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=1310018538033029303:1472080349582&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23378&foc=1&adt=23376&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
[object Object]
[object Object]
[object Object]
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":580,"status":200,"statusText":"OK","url":"http://pagead2.googlesyndication.com/activeview?avi=BnC4x3Cm-V6XmGtit8AXDkoagDgAAAAAQATgB4AQCiAXuvccEoAY-&id=lidartos&v=478&adk=1&p=803,1125,1057,1425&tos=30331,0,0,0,0&mtos=30331,30331,30331,30331,30331&rs=5&tfs=627&tls=30958&mc=1&lte=1&bas=0&bac=0&r=u&bs=1920,1080&bos=-12245933,-12245933&ps=1920,40345&ss=1024,768&tt=30333&pt=625&deb=1-1-1-7-40-2&tvt=30331&iframe_loc=http%3A%2F%2Fleitesculinaria.com%2F93789%2Frecipes-5-minute-artisan-bread.html&is=300,250"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":4,"errorString":"Socket operation timed out","id":1,"status":null,"statusText":null,"url":"http://www.artisanbreadinfive.com/"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":665,"status":200,"statusText":"OK","url":"http://pagead2.googlesyndication.com/activeview?avi=BrTZ-9im-V4C1B8Ot8AXp_IWACQAAAAAQATgB4AQCiAWH69QEoAY-&id=lidartos&v=478&adk=1&p=478,1116,728,1416&tos=24055,0,0,0,0&mtos=24055,24055,24055,24055,24055&rs=5&tfs=359&tls=24414&mc=1&lte=1&bas=0&bac=0&r=u&bs=1920,1080&bos=-12245933,-12245933&ps=1920,4446&ss=1024,768&tt=24057&pt=358&deb=1-1-1-8-33-1&tvt=24056&iframe_loc=http%3A%2F%2Fsin1-ib.adnxs.com%2Fif%3Fe%3DwqT_3QKeBvB-HgMAAAMA1gAFAQj20_i9BRCv8aaTgs2QlHIYgbPZxajb8OYqIAEqLQntStSuRO3yPxEK16NwPQrvPxkAAABAMzP7PyFLsg5HV6nxPymaKhiV1In1PzC6oIgEOPsHQNYdSAJQ2Pz9FljoxTJgAGjr2ll4jKgEgAEBigEDVVNEkgUG8FKYAawCoAH6AagBALABALgBAsABBcgBANABANgBAOABAPABAIoCdHVmKCdhJywgMTAwMjU1MiwgMTQ3MjA4MDM3NCk7dWYoJ3InLCA0ODIwMTMwNEYeAChnJywgMzI0NjY3OUYdAABpAR0QNjk3Mjg2HADwipIC7QEhMVRiTmpBaTV6dElHRU5qOF9SWVlBQ0RveFRJd0FUZ0FRQUJJMWgxUXVxQ0lCRmdBWU1FRmFBQndBSGdBZ0FFQWlBRUFrQUVCbUFFQm9BRUNxQUVDc0FFQXVRR2FLaGlWMUluMV&is=300,250"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
[object Object]
[object Object]
[object Object]
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":597,"status":null,"statusText":null,"url":"http://us-u.openx.net/w/1.0/pd?plm=6&ph=94ef58655625200a8cfc5b15afcd0b94ad52d590"}
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":608,"status":200,"statusText":"OK","url":"http://pagead2.googlesyndication.com/activeview?avi=BjoSU_Cm-V6P1Asmt8AXc3bbYDQAAAAAQATgB4AQCiAXuvccEoAY-&id=lidartos&v=478&adk=1&p=803,1125,1057,1425&tos=30259,0,0,0,0&mtos=30259,30259,30259,30259,30259&rs=5&tfs=1270&tls=31529&mc=1&lte=1&bas=0&bac=0&r=u&bs=1920,1080&bos=-12245933,-12245933&ps=1920,40345&ss=1024,768&tt=30260&pt=1269&deb=1-1-1-7-40-1&tvt=30259&iframe_loc=http%3A%2F%2Fleitesculinaria.com%2F93789%2Frecipes-5-minute-artisan-bread.html&is=300,250"}
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":714,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=6726487838281469877:1472080399678&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23397&foc=1&adt=23396&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
[object Object]
[object Object]
[object Object]
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":690,"status":200,"statusText":"OK","url":"https://pagead2.googlesyndication.com/activeview?avi=BVQncHSq-V_XgH9WR8AXisZJoAIiSwqO2AQAAEAE4AcgBCaAGIQ&cid=CAASFeRo6xKbWKTW5SnMfb-tQ8a8JgvAMw&id=osdtos&ti=1&adk=2799705161&p=803,1125,1053,1425&tos=28944,0,0,0,0&mtos=28944,28944,28944,28944,28944&rs=1&ht=0&tfs=1698&tls=30642&mc=1&lte=1&bas=0&bac=0&fp=correlator%3D1620534437609472%26eid%3D108809080%26iu%3D8352%252Fbh.leitesculinaria%252Ftargether%252Fjade%26oid%3D3%26ifk%3D3819328715%26url%3Dhttp%253A%252F%252Fleitesculinaria.com%252F93789%252Frecipes-5-minute-artisan-bread.html&afp=%26output%3Dhtml%26slotname%3D2013737771%26flash%3D0%26dt%3D1472080413398%26adx%3D1125%26ady%3D803%26ifi%3D2&r=u&bs=1920,1080&bos=-12245933,-12245933&ps=1920,40345&ss=1024,768&tt=28841&pt=1801&deb=1-2-2-47-284-3&tvt=28945&iframe_loc=http%3A%2F%2Fleitesculinaria.com%2F93789%2Frecipes-5-minute-artisan-bread.html&is=300,250&uc=283&tgt=nf&cl=0"}
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":743,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=7697322421983873214:1472080424207&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23985&foc=1&adt=23985&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":770,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=692390010652582322:1472080449222&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23982&foc=1&adt=23981&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
[object Object]
[object Object]
[object Object]
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":795,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=4379490068996032504:1472080474398&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23883&foc=1&adt=23881&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
[object Object]
[object Object]
[object Object]
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":833,"status":200,"statusText":"OK","url":"https://tps10229.doubleverify.com/event.gif?impid=3fd470838d914e49a3a115485e6cefc4&dvp_wint=27982&cbust=1472080507506913"}
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":834,"status":200,"statusText":"OK","url":"https://tps10229.doubleverify.com/event.gif?impid=3fd470838d914e49a3a115485e6cefc4&dvp_wint=27982&cbust=1472080507506913"}
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":823,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=5034477816135705235:1472080499287&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=24073&foc=1&adt=24072&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":873,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=139116929477677905:1472080549593&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23797&foc=1&adt=23796&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":299,"errorString":"Error downloading http://us-u.openx.net/w/1.0/sd?id=537072996&val=6788908082273198729 - server replied: Request Time-out","id":893,"status":408,"statusText":"Request Time-out","url":"http://us-u.openx.net/w/1.0/sd?id=537072996&val=6788908082273198729"}
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":900,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=5328007326302374138:1472080574473&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23939&foc=1&adt=23938&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":927,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=6662711106410481804:1472080599596&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=24038&foc=1&adt=24036&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":945,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=4218893054665803934:1472080624764&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23974&foc=1&adt=23973&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":963,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2074858197551486980:1472080650214&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23554&foc=1&adt=23553&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1005,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=4802558624339293503:1472080674938&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23890&foc=1&adt=23889&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1040,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=523103904141854247:1472080700134&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23749&foc=1&adt=23748&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1056,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=8710749665555912212:1472080725004&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23889&foc=1&adt=23887&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1072,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=1256285565129903121:1472080749919&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=24331&foc=1&adt=24330&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1088,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2182537315974536503:1472080775286&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23935&foc=1&adt=23935&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1104,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=1923100968931039515:1472080800362&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23847&foc=1&adt=23845&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1120,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=3298583706469195369:1472080825333&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23943&foc=1&adt=23942&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1143,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2282455947813342119:1472080850763&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23428&foc=1&adt=23427&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1159,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2587891308936462138:1472080875284&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23987&foc=1&adt=23986&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1175,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2160986248436360812:1472080900367&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23921&foc=1&adt=23920&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1191,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2773470436941087972:1472080925610&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23673&foc=1&adt=23672&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1207,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=5346794718305879210:1472080950430&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23605&foc=1&adt=23604&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1223,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=6581761919661288581:1472080975397&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23944&foc=1&adt=23943&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1240,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=2008804892676376664:1472081000503&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23886&foc=1&adt=23885&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1256,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=336236790973858538:1472081025384&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=24036&foc=1&adt=24035&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1272,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=8798742339467250961:1472081050614&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23836&foc=1&adt=23835&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1289,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=729018065708712987:1472081075622&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23876&foc=1&adt=23876&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1305,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=9120915215506563230:1472081100642&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23789&foc=1&adt=23788&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1321,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=3682551098491680741:1472081126469&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=22984&foc=1&adt=22983&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1338,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=3662830824484407038:1472081150832&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23761&foc=1&adt=23760&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1354,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=7128886583839580670:1472081175603&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23717&foc=1&adt=23716&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1371,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=8606222834030903787:1472081200631&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23960&foc=1&adt=23958&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1389,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=5552614638737039793:1472081226002&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23629&foc=1&adt=23628&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1405,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=5982643496587339310:1472081250735&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23944&foc=1&adt=23943&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1421,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=5703180518166709810:1472081275709&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=24011&foc=1&adt=24010&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1438,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=8196443017552646197:1472081300891&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23791&foc=1&adt=23789&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
onResourceError,{"errorCode":202,"errorString":"Error downloading http://go.realvu.net/flip/2/c=IZ_r=RealVu_p=na_f=check_s=300x250_n=0_h=www!2Ejamieoliver!2Ecom/? - server replied: Forbidden","id":1441,"status":403,"statusText":"Forbidden","url":"http://go.realvu.net/flip/2/c=IZ_r=RealVu_p=na_f=check_s=300x250_n=0_h=www!2Ejamieoliver!2Ecom/?"}
loading page...
loading page...
onResourceError,{"errorCode":202,"errorString":"Error downloading http://go.realvu.net/flip/2/c=IZ_r=RealVu_p=na_f=view_s=300x250_n=0_h=www!2Ejamieoliver!2Ecom/? - server replied: Forbidden","id":1447,"status":403,"statusText":"Forbidden","url":"http://go.realvu.net/flip/2/c=IZ_r=RealVu_p=na_f=view_s=300x250_n=0_h=www!2Ejamieoliver!2Ecom/?"}
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1457,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=4273087906608485802:1472081325912&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23854&foc=1&adt=23853&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1473,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=8390223992177359356:1472081350806&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=24100&foc=1&adt=24100&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1489,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=8409637783787409013:1472081376208&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23715&foc=1&adt=23714&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
loading page...
loading page...
loading page...
loading page...
loading page...
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
onResourceError,{"errorCode":5,"errorString":"Operation canceled","id":1505,"status":200,"statusText":"OK","url":"https://beap-bc.yahoo.com/ym?sek=7754132785736106335:1472081401030&gm0=0&gm1=0&tivt=0&hov=2&tth=0&intt=2&intl=0&tti=0&st=23987&foc=1&adt=23986&scr=2&ph=-1&scd=0&svd=0&svu=0&sct=0&mivp=0&mivt=0&ls=5&winl=&winr=&lvl=3&atf=0&al=3&ae=0&aw=0&ao=&sao=-1&lang=en-US&sw=1024&sh=768&tzo=-480&plgn=d41d8cd98f00b204e9800998ecf8427e&ci=0fb2259f7c622598958a0e2edfc0f2ac&b=20&ad=jv=1.0.95:iww=0"}
TypeError: undefined is not an object (evaluating 'top2.document')
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://uk-ads.openx.net/w/1.0/jstag : 9
   http://ad2one-n-d.openx.net/w/1.0/jstag : 9
loading page...
loading page...
loading page...
loading page...

Any help with this?

h12w commented

Do you know PhantomJS has 1588 issues now? I have given up. Goodbye PahtomJS, and best wishs to all its users.

@apelican I know this is been long, but could you please give out some sample code on how you can include the resource request as a script tag?

Yeah, my situation is going to be different than many folks, but happy to discuss.

I have a reactjs webapp that displays data on Google Charts.
Specifically, I was running into this defect when making requests to my own server, so I essentially skipped that step, and made a custom export template. Since Google Charts accepts the data as JSON, I really only need the their response object in a format I could shove into a container for PDF export.

I was originally trying to make a request to my own server with an export parameter. This error would throw, inconsistently. Maybe it's a server thing, I think we've all seen it's some QT regression or something due to this thread. I dunno.

Here's how I got it working:

I made a custom converter.js.
I set up a new page object

var page = require('webpage').create();

These help me debug, but are not essential:

page.onError = function (msg, trace) { errorHandler(msg) };

page.onConsoleMessage = function(msg) { console.log(msg); };

page.onInitialized = function() { //console.log("Load complete"); };

In my case, my content is dynamic, so I needed to build the injection markup for each Google Charts response:

var reportSite = '<div id="chartNumber" class="chart-container">Chart did not generate</div>\n';

var reportSkeleton = '<html><head><title></title><style>body { zoom: 1; } .chart-container { page-break-after: always; }</style><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script><script src="http://' + host + '/js/myGoogleChartsInteropLibrary.js"></script><script src="http://www.google.com/jsapi"></script><script>google.load("visualization", "1.1", {"packages":["corechart"]});</script></head><body>';

var reportFooter = '</body></html>';

I iterated my dataset and appended those blocks together, used a regex to replace the IDs.

I set up page.onLoadFinish that does my data requests to Google Charts.

This block evaluates the data requests and fills in the blocks:

 page.onLoadFinished = function(){
         arrayOfChartMarkup = page.evaluate(function(reports) {
             var result = [];
             for(var x = 0; x < reports.length; x++) {
                 var report = reports[x];
                 if(report) {
                     var chartData = myGoogleDataTableConverterFromJson(report);
                     var chart = myGoogleChartRequestConstructor(report, document.getElementById('chart'+x));
                     chart.draw(chartData, report);
                     var chartMarkup = $('#chart'+x).html();
                     result.push(chartMarkup);
                 }
             }
             return result;
         }, allReports);
         if(typeof callback === 'function'){
             callback(arrayOfChartMarkup, allReports);
         }
}

That callback looks like

    page.content = arrayOfChartMarkup.join("<div style='page-break-after:always;'></div>");
    page.render(options.destination, { format: options.fileFormat || 'pdf' , quality: 80 } );

    console.log(JSON.stringify({
        success: true,
        response: null
    })); // my backend looks for this response to serve the PDF

    phantom.exit(0);

I'm sorry if this is incomplete, and I KNOW it's gross (I'm a rapid prototyper for a startup consulting firm, so that's sorta my life). I also hadn't posted this because I recognized my case is not the average use case people are describing, I was very lucky that Google Charts offered a markup export of their content, and I was also very lucky I was able to take my dataset and pass it directly in.

Basically - try to inline assets in a single page load, instead of making a remote request and expecting the remote will succeed. Seems like it's resource requests failing (not other network calls). Maybe the page loaded callback is firing early while async requests are outstanding?
I'm not certain why this fixed it for me.

I know other people have done much more research at this point, and hopefully the devs are looking at this now (Vitallium, thank you for making it a priority!)

We have the same issue too. Requests are cancelled.

.....
a handful of successful request responses here, then...
.....
2016-09-13T12:58:46.908Z + 1 https://xxxx.xxx.com/yyyyy/zzzzz?requestId=4&method=get
error loading URL: {"errorCode":5,"errorString":"Operation canceled","id":14,"status":200,"statusText":"OK","url":"https://xxxx.xxx.com/yyyyy/zzzzz?requestId=4&method=get"}
2016-09-13T12:58:47.014Z - 0 https://xxxx.xxx.com/yyyyy/zzzzz?requestId=4&method=get
Unhandled promise rejection TypeError: undefined is not an object

  https://xxxx.xxx.com/app.js?v=20160913:61
2016-09-13T12:58:57.992Z Timed out. Sending request with HTML on the page

We have a React front-end which connects to a back-end service to get data. This is deployed on Google Container Engine in a Kubernetes cluster.

Some requests/responses make it but at some point one of the back-end responses is actually a "redirect" instruction for the front-end. At that point the front-end does a router.history.pushState to move to another handler. That handler tries to get data from the back-end but the request is cancelled. That is what is shown above.

Someone above mentioned this happens for slow server responses but notice that in the logs I posted it's just 100ms before the request is cancelled.

This is always reproducible for us: get data from the server => server says to go somewhere else => front-end changes handler => new handler tries to get data from the server => request cancelled => front-end crashes.

Unfortunately, @ariya will likely not do anything about this issue unless you meet his bug reporting requirements... despite a few years worth of frustration from users. Let this be a lesson to other open-source projects and folks considering adopting them: unless you have significant community behind a project, you really should look elsewhere. Projects such as PhantomJS can die on the vine because they are beholden largely to a single developer who may move on to other things.

@bluepeter. Unfortunately I can't add a working reproducible copy of the code. This is a private cloud project with confidential data and closed source application. That's why my comment above has https://xxxx.xxx.com as the domain. I can't mention the real one.

What's even more frustrating is that this works with no issue on other environments (my development station included). Same code, same everything, except no Kubernetes in GCloud.

@BogdanEM Exactly, I'm working on a scraping project, after tons of time debugging, finally switched to SlimerJs. Same code and environment, just used SlimerJs instead, and now it's working! Still get errors "Error code: 99. Description: The request has been aborted"(seems has something to do with ssl library), but at least it won't crash randomly.

gsouf commented

@bluepeter @BogdanEM 4 days ago @vitallium self assigned to this issue and added it for the release 2.5. Maybe can we hope for a fix soon...

You know what, this bug really lead me away from phantomJS and like Peter
said above, the project could die on a vine.

Not only was I getting a bit sick of the monolithic ever growing .js file
and not being able to use imports or some way to effectively separate code.

I was able to migrate to selenium and actually rewrote my entire
application from scratch using pythong w/o all the headaches and no
problems at all.

Not only that, if you really need headless, there are tools to run selenium
headlessly. It's a pity but that's just the way the wind blows, we can't
have our projects die because the main and only dev is too lazy to deal
with "years of user frustration"

good luck to the phantomJS.

On Tue, Sep 13, 2016 at 10:25 PM, xiaol825 notifications@github.com wrote:

@BogdanEM https://github.com/BogdanEM Exactly, I'm working on a
scraping project, after tons of time debugging, finally switched to
SlimerJs. Same code and environment, just used SlimerJs instead, and now
it's working! Still get errors "Error code: 99. Description: The request
has been aborted"(seems has something to do with ssl library), but at least
it won't crash randomly.

โ€”
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#12750 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACB8_sFsZdRGGFY9NzeiiN23QKFR1WDhks5qprJygaJpZM4C8hZj
.

ariya commented

@bluepeter That's really an unfair rephrasing of what I wrote, it's unfortunate that you think that way. What I meant was that I have a bazillion other PhantomJS issues (yes, every user think their bug is the most important) and I simply want to focus on things I can control. It's about priority, since I have limited time/resources/energy.

Note that I still read every single report coming to my e-mail, keep thinking continuously on how I can split my attention. It may come as a surprise to you or others, but I still pour a comically amount of attention to this project. You may not notice it until it has an effect on you, but you can't never deny or accuse me of doing otherwise.

ariya commented

@teamblubee Thanks for report, I'll take a look at it when I have a chance.

It's sad that you insult me "being too lazy.." without trying to understand my position at all.
But in all cases, good luck with your project!

gsouf commented

@ariya do you have an output about @vitallium that added this for 2.5 ?

Thanks @ariya and I hope you can dig in more to this issue. Too often, at least with this particular issue, open since 2014, you have rejected the many frustrations from developers because the bug report didn't seemingly meet your reductive requirements. As a developer on the front-lines, dealing with actual customers, this is apostasy to me: I do whatever it takes to reproduce and fix issues. I recognize your commitment to this project (despite not many recent commits), but I would love to see a similar approach in terms of resolving this clear and extant issue from many users of PhantomJS. I'd love to see you dig into this and try to resolve it, versus continuing the years long rejection of complaints due to over-stringent requirements for minimal reproducible test cases, etc.

ariya commented

@gsouf I'm sure @vitallium will explain it himself at point.

ariya commented

@bluepeter This is what I wrote earlier in this thread:

Unless it's a quickly reproducible reduced/simple test case, it's very likely that I will prioritize other PhantomJS development tasks.

This is not meant to be a rejection (I don't understand how you come to that conclusion).

I'm not a native speaker but I believe you are. So please coach me on how to express my stance properly and I'd be happy to explicitly re-state my position.

@gsouf I added this label because this issue will be solved in the upcoming 2.5 release. Qt network stack now has all needed fixes and features to fix it.

Also, I want to ask you to keep this discussion about this issue only. I know that all of you are frustrated and want to have it fixed, but I can't monitor this issue properly in tons of unrelated messages. We have been mentioning that we are the really small team of developers. We can't handle all information physically. I appreciate your patience! Thank you!

ariya commented

Qt network stack now has all needed fixes and features to fix it.

Always good if it's solved upstream. Thanks for the investigation @vitallium!

Yoi don't think that what I said was insulting at all. If people have been
reporting this issue for more than two years and your response is, it
doesn't meet our criteria to look at it when there are multiple people who
can reproduce the same bug at will, what would you call that?

You decided to put yourself in this position of being a leader of an open
source project that people started to rely on.

Run a requirement campaign, bring in more devs. Train them as your
replacement. My post might have been sharp and to the point but can we draw
a distinction between what I believe to be valid criticism and insults.

Most people don't care that you feel like you're spreading yourself too
thin, it comes off as whiny and immature and I doubt you are those things.
Bring on more people and train your replacement unless you do expect the
project to die when you do eventually get tired of the stress and want to
move on.

Again no disrespect, just speaking openly and honestly from my point of
view. I might be wrong, there are others here who can speak to that if they
so choose.

On Tue, Sep 13, 2016, 22:45 Ariya Hidayat notifications@github.com wrote:

@teamblubee https://github.com/teamblubee Thanks for report, I'll take
a look at it when I have a chance.

It's sad that you insult me "being too lazy.." without trying to
understand my position at all.
But in all cases, good luck with your project!

โ€”
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
#12750 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACB8_pyi-lyi0lJfjfhb3oiiaQzJ3h87ks5qprcUgaJpZM4C8hZj
.

ariya commented

@teamblubee You read the unfair rephrasing from @bluepeter. Did you read my original comment?

Unless it's a quickly reproducible reduced/simple test case, it's very likely that I will prioritize other PhantomJS development tasks.

It never meant that I won't look at it. There are 200 other users breathing down my neck trying to get their issues investigated at and worked on, some of them have extremely easily reproducible test cases. Prioritization is inevitable. What would you do if you are in my position?

I didn't categorize your comment as a criticism because it was not the result of a careful, well-thought analysis. It was merely following the logic of (1) my problem is not solved (2) the maintainer is not looking at it, and thus (3) the maintainer is lazy.

I do agree on the need to expand the team, bring on more people, train them etc etc. So far, it has failed because of many conditions I won't elaborate in details (major reason: barrier is high, this is not something you can just "wing it" in a weekend or so). If you do have a more concrete idea on how to proceed with this, please let us and discuss it at #13861.

Possible fix just landed to master - 5cb736d

Cheers!

ariya commented

I spawn the meta discussion as #14541: Communicating maintenance capacity and prioritization. @bluepeter @teamblubee If you are looking for opportunities to engage in a constructive criticism, spend a few minutes of your time and participate in that discussion!

Can someone build the version with this patch ? My VPS seems too weak for this.

So using the latest master build from today (2016-09-19) this is still not working for me. Test case is:

var page = require('webpage').create();
page.viewportSize = { width: 1024, height: 768 };
page.settings.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36';

//var url = 'http://www.firstdirect.com'; // THIS WORKS
var url = 'https://www2.firstdirect.com/1/2/pib-service'; // THIS DOES NOT

page.onConsoleMessage = function(msg, lineNum, sourceId){
        console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};

page.open(url, function (status) {
        console.log("Status: "+status);
        if(status === "success") {
                page.render('example.png');
        } else {
                console.log("Error opening url \"" + page.reason_url + "\": " + page.reason);
        }
        phantom.exit( 1 );
});

Give the following output:

./bin/phantomjs --debug=true --ignore-ssl-errors=yes  test2.js
2016-09-19T15:36:31 [DEBUG] CookieJar - Created but will not store cookies (use option '--cookies-file=<filename>' to enable persistent cookie storage)
2016-09-19T15:36:31 [DEBUG] Set  "http"  proxy to:  "" : 1080
2016-09-19T15:36:31 [DEBUG] Phantom - execute: Configuration
2016-09-19T15:36:31 [DEBUG]      0 objectName : ""
2016-09-19T15:36:31 [DEBUG]      1 cookiesFile : ""
2016-09-19T15:36:31 [DEBUG]      2 diskCacheEnabled : "false"
2016-09-19T15:36:31 [DEBUG]      3 maxDiskCacheSize : "-1"
2016-09-19T15:36:31 [DEBUG]      4 diskCachePath : ""
2016-09-19T15:36:31 [DEBUG]      5 ignoreSslErrors : "true"
2016-09-19T15:36:31 [DEBUG]      6 localUrlAccessEnabled : "true"
2016-09-19T15:36:31 [DEBUG]      7 localToRemoteUrlAccessEnabled : "false"
2016-09-19T15:36:31 [DEBUG]      8 outputEncoding : "UTF-8"
2016-09-19T15:36:31 [DEBUG]      9 proxyType : "http"
2016-09-19T15:36:31 [DEBUG]      10 proxy : ":1080"
2016-09-19T15:36:31 [DEBUG]      11 proxyAuth : ":"
2016-09-19T15:36:31 [DEBUG]      12 scriptEncoding : "UTF-8"
2016-09-19T15:36:31 [DEBUG]      13 webSecurityEnabled : "true"
2016-09-19T15:36:31 [DEBUG]      14 offlineStoragePath : ""
2016-09-19T15:36:31 [DEBUG]      15 localStoragePath : ""
2016-09-19T15:36:31 [DEBUG]      16 localStorageDefaultQuota : "-1"
2016-09-19T15:36:31 [DEBUG]      17 offlineStorageDefaultQuota : "-1"
2016-09-19T15:36:31 [DEBUG]      18 printDebugMessages : "true"
2016-09-19T15:36:31 [DEBUG]      19 javascriptCanOpenWindows : "true"
2016-09-19T15:36:31 [DEBUG]      20 javascriptCanCloseWindows : "true"
2016-09-19T15:36:31 [DEBUG]      21 sslProtocol : "default"
2016-09-19T15:36:31 [DEBUG]      22 sslCiphers : "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:RC4-SHA:RC4-MD5"
2016-09-19T15:36:31 [DEBUG]      23 sslCertificatesPath : ""
2016-09-19T15:36:31 [DEBUG]      24 sslClientCertificateFile : ""
2016-09-19T15:36:31 [DEBUG]      25 sslClientKeyFile : ""
2016-09-19T15:36:31 [DEBUG]      26 sslClientKeyPassphrase : ""
2016-09-19T15:36:31 [DEBUG]      27 webdriver : ":"
2016-09-19T15:36:31 [DEBUG]      28 webdriverLogFile : ""
2016-09-19T15:36:31 [DEBUG]      29 webdriverLogLevel : "INFO"
2016-09-19T15:36:31 [DEBUG]      30 webdriverSeleniumGridHub : ""
2016-09-19T15:36:31 [DEBUG] Phantom - execute: Script & Arguments
2016-09-19T15:36:31 [DEBUG]      script: "test2.js"
2016-09-19T15:36:31 [DEBUG] Phantom - execute: Starting normal mode
2016-09-19T15:36:31 [DEBUG] WebPage - setupFrame ""
2016-09-19T15:36:31 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:31 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:31 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:31 [WARNING] QXcbConnection: XCB error: 145 (Unknown), sequence: 169, resource id: 0, major code: 139 (Unknown), minor code: 20
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "CAMToken=AAgS71gIntRdfKecqIxOIZnb0a0=; secure; HttpOnly; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "JSESSIONID=0000QIWACj3UbyvZiEZjEQ4RxKg:16jqt3js2; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "FIRSTDIRECT-IB-EVRGRN-WDC=3734293258.22528.0000; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] WebPage - updateLoadingProgress: 30
2016-09-19T15:36:32 [DEBUG] WebPage - setupFrame ""
CONSOLE: The page at https://www2.firstdirect.com/1/2/pib-service was allowed to display insecure content from http://view.atdmt.com/action/mdgfid_2012firstdirectInternetBankingLogin_1.
 (from line # in "")
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "CAMToken=AAgS71gIntRdfKecqIxOIZnb0a0=; secure; HttpOnly; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "JSESSIONID=0000QIWACj3UbyvZiEZjEQ4RxKg:16jqt3js2; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "FIRSTDIRECT-IB-EVRGRN-WDC=3734293258.22528.0000; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Saved "cookie_support_test=y; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/webtrends_top_section.js"
2016-09-19T15:36:32 [DEBUG] WebPage - updateLoadingProgress: 100
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/images/logo_large_v_w.gif"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/jquery-1.8.3.min.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/htse-fsdt-themeskins-servlet/themes/html/commonTheme/scripts/common-script.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/images/hsbcmember_footer_w.gif"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/firstdirectpws2a/css/StylesPopup-min.css"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/utilities-min.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/mbox.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/firstdirectpws2a/scripts/firstdirectpws2a.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/firstdirectpws2a/scripts/jQuery.fd_DNT.min.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/jquery.plugins-min.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/swfobject.js"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/firstdirectpws2a/css/Styles-min.css"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "http://view.atdmt.com/action/mdgfid_2012firstdirectInternetBankingLogin_1"
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www2.firstdirect.com/1/PA_esf-ca-app-content/content/firstdirect/pws2/themes/common/scripts/webtrends_bottom_section.js"
Status: fail
Error opening url "undefined": undefined
2016-09-19T15:36:32 [DEBUG] WebPage - setupFrame ""
2016-09-19T15:36:32 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www.firstdirect.com/1/2/?idv_cmd=idv.Logoff&nextPage=fsdtBalances"
2016-09-19T15:36:32 [DEBUG] WebPage - updateLoadingProgress: 100
2016-09-19T15:36:32 [DEBUG] WebPage - setupFrame ""
2016-09-19T15:36:32 [DEBUG] WebPage - updateLoadingProgress: 100
2016-09-19T15:36:32 [DEBUG] WebPage - setupFrame ""
2016-09-19T15:36:32 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:32 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:32 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:32 [DEBUG] WebPage - setupFrame ""
2016-09-19T15:36:32 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:32 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:32 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2016-09-19T15:36:32 [DEBUG] WebPage - updateLoadingProgress: 100
2016-09-19T15:36:32 [DEBUG] WebPage - setupFrame ""
2016-09-19T15:36:32 [DEBUG] CookieJar - Purged (session) "cookie_support_test=y; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Purged (session) "FIRSTDIRECT-IB-EVRGRN-WDC=3734293258.22528.0000; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Purged (session) "JSESSIONID=0000QIWACj3UbyvZiEZjEQ4RxKg:16jqt3js2; domain=www2.firstdirect.com; path=/"
2016-09-19T15:36:32 [DEBUG] CookieJar - Purged (session) "CAMToken=AAgS71gIntRdfKecqIxOIZnb0a0=; secure; HttpOnly; domain=www2.firstdirect.com; path=/"

Version from binary is:

./bin/phantomjs --version
2.5.0-development

This is on Ubuntu 14.04 using libQt5WebKit.so.5 and libQt5WebKitWidgets.so.5 from https://github.com/annulen/webkit (branch=qtwebkit-tp3)

Hope this helps.

@JamieMcNaught I don't see the redirect signal in your log. Qt version?

It should be 5.6, but I've got Ubuntu's base install, 5.6 and 5.7, so here is a dump from ldd.

ldd bin/phantomjs
        linux-vdso.so.1 =>  (0x00007ffe84dd7000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f14d575a000)
        libQt5WebKitWidgets.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5WebKitWidgets.so.5 (0x00007f14d5b23000)
        libQt5Widgets.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Widgets.so.5 (0x00007f14d4ee8000)
        libQt5WebKit.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5WebKit.so.5 (0x00007f14d24d8000)
        libQt5Gui.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Gui.so.5 (0x00007f14d1ce1000)
        libQt5Network.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Network.so.5 (0x00007f14d1982000)
        libQt5Core.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Core.so.5 (0x00007f14d1270000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f14d1052000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f14d0d40000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f14d0a3a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f14d0823000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f14d045e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f14d595e000)
        libQt5PrintSupport.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5PrintSupport.so.5 (0x00007f14d01f1000)
        libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f14cffa0000)
        libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f14cfd9e000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f14cfb96000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f14cf88e000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f14cf67c000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f14cf347000)
        libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f14cf0e1000)
        libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007f14ced68000)
        libQt5Positioning.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Positioning.so.5 (0x00007f14ceb29000)
        libicui18n.so.52 => /usr/lib/x86_64-linux-gnu/libicui18n.so.52 (0x00007f14ce722000)
        libQt5Sensors.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Sensors.so.5 (0x00007f14ce4e5000)
        libQt5Sql.so.5 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libQt5Sql.so.5 (0x00007f14ce2a1000)
        libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f14ce04c000)
        libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f14cde26000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f14cdc0d000)
        libhyphen.so.0 => /usr/lib/libhyphen.so.0 (0x00007f14cda06000)
        libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f14cd69f000)
        libxslt.so.1 => /usr/lib/x86_64-linux-gnu/libxslt.so.1 (0x00007f14cd462000)
        libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f14cd1a9000)
        libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f14cce36000)
        libgstapp-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so.0 (0x00007f14ccc29000)
        libgstbase-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0 (0x00007f14cc9d1000)
        libgstreamer-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 (0x00007f14cc6cd000)
        libgstpbutils-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so.0 (0x00007f14cc4a7000)
        libgstaudio-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so.0 (0x00007f14cc25d000)
        libgsttag-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgsttag-1.0.so.0 (0x00007f14cc025000)
        libgstvideo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0 (0x00007f14cbddf000)
        libgstfft-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstfft-1.0.so.0 (0x00007f14cbbd5000)
        libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f14cb999000)
        libicui18n.so.56 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libicui18n.so.56 (0x00007f14cb4ff000)
        libicuuc.so.56 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libicuuc.so.56 (0x00007f14cb147000)
        libicudata.so.56 => /home/jamie/Qt5.6.0/5.6/gcc_64/lib/libicudata.so.56 (0x00007f14c9764000)
        libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f14c955c000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f14c931e000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f14c90ff000)
        libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f14c8ed8000)
        libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f14c8cd5000)
        libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f14c8acf000)
        libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f14c88cd000)
        libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f14c86b6000)
        libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f14c84b1000)
        libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f14c82ae000)
        libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f14c80ab000)
        libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f14c7ea5000)
        libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f14c7ca3000)
        libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f14c7a9d000)
        libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f14c788f000)
        libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007f14c6022000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f14c5e00000)
        libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f14c5bfc000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f14c59d9000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f14c57be000)
        liborc-0.4.so.0 => /usr/lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007f14c553c000)
        libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f14c5299000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f14c506f000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f14c4e6b000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f14c4c65000)

is this bug fixed.
can anyone please let me know where I can find the updated fixed code

where is the patch available pleaase ?

I've just built 2.5.0-development for Mac OS. Still getting QNetworkReply::Network(OperationCanceledError), I am however seeing an extra message in the debugging output that I wasn't seeing with 2.1.1 and that is QNetworkReply::NetworkError(UnknownNetworkError) ( "SSLRead failed: -50" ). In my case, I hit a website that redirects to a AAA server (doing some Kerberos stuff via cntlm proxy), that will set a cookie and then redirect me back to my original site - everything appears to work well write up until that last redirect. If I figure this out, I'll be sure to follow up here.

Apparently after days of debugging we now figured out this is our issue. If this cant be fixed then probably the entire code has to be rewritten in some other way :(

Could you please try again with 2.5 binary? Thanks!

I have been struggling with this problem for a little while. I have come up with a bit of a hacky fix, that for the most part seems to be working at the moment.

First of all, i store all of the urls that are causing the resource errors and then causing the operation to be cancelled.

page.onResourceError = function(resourceError){
    // store the urls that caused the resource errors
    errorResources.push(resourceError.url);
};

Next, I have an array of resources that frequently causes resource errors.

// Common resources that cause errors -- note that most of them are analytics and ads
var skipResourcesList = [
   'facebook.com',
   'quantserve',
   'adzerk',
   'doubleclick',
   'adition',
   'exelator',
   'sharethrough',
   'cdn.api.twitter',
   'google-analytics',
   'google.com'
];

Now we can check against these resources as we load them and skip them as necessary. By simply redirecting to my own server, I can return a simple 200 response. From below, you can see that I am actually concatanating skipResourcesList with config.errorResources. The first time that this runs, the config.errorResources will be empty. If however, the page fails and I have a set of resources that were stored because there were resource errors, then the 'errorResources' array can be returned to the program that executed the phantomjs script. If i then pass this in with the config object, I can add this to the resources that are skipped during loading and increase the chance that second time round, the operation will not be cancelled.

page.onResourceRequested = function(requestData, networkRequest){
   
   var regex = new RegExp(skipResourcesList.concat(config.errorResources).join('|'),'i');
   var bypassPing = 'http://to-my-own-server'

   if (requestData.url.match(regex) != null){
      networkRequest.changeUrl(bypassPing);
   }
};

This sure is a very hacky solution to the problem. But it is a solution that has let me move forwards. I hope it might be useful for someone.

hi, @vitallium

I ran into the similar issue, and it only happens when I use 2.5 beta version, when I use 2.1 release, everything is good.

the error is something like this:
Network - Resource request error: QNetworkReply::NetworkError(RemoteHostClosedError) ( "Connection closed" ) URL: "https://cm.g.doub...

sorry for that I can't paste more detailed info due to I'm working on a business project.

Currently running into this exact issue. Was happening on 2.1 and I've updated to trial 2.5 and still happening there.

phantomjs -v
2.5.0-development

While running a simple GET on https://getproxylist.com/ the error appears for the following resources:

2017-04-06T00:24:14 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://getproxylist.com/js/site.js"
2017-04-06T00:24:14 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://getproxylist.com/images/header-bg.png"

Thanks to @ariya for all the hard work! Still seeing this issue using the latest release (2.1.1) and after compiling the latest commit to the master branch. I used the example site from @marktheunissen to confirm: http://dev-phantom-failure-sample.pantheonsite.io/index.php and netlog.js. Would love to vote up the priority up for this!

$ ./phantomjs -v
2.1.1
$ ./phantomjs --debug=true ../examples/netlog.js "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
2017-04-07T09:47:46 [DEBUG] CookieJar - Created but will not store cookies (use option '--cookies-file=<filename>' to enable persistent cookie storage)
2017-04-07T09:47:47 [DEBUG] Set  "http"  proxy to:  "" : 1080
2017-04-07T09:47:47 [DEBUG] Phantom - execute: Configuration
2017-04-07T09:47:47 [DEBUG]      0 objectName : ""
2017-04-07T09:47:47 [DEBUG]      1 cookiesFile : ""
2017-04-07T09:47:47 [DEBUG]      2 diskCacheEnabled : "false"
2017-04-07T09:47:47 [DEBUG]      3 maxDiskCacheSize : "-1"
2017-04-07T09:47:47 [DEBUG]      4 diskCachePath : ""
2017-04-07T09:47:47 [DEBUG]      5 ignoreSslErrors : "false"
2017-04-07T09:47:47 [DEBUG]      6 localUrlAccessEnabled : "true"
2017-04-07T09:47:47 [DEBUG]      7 localToRemoteUrlAccessEnabled : "false"
2017-04-07T09:47:47 [DEBUG]      8 outputEncoding : "UTF-8"
2017-04-07T09:47:47 [DEBUG]      9 proxyType : "http"
2017-04-07T09:47:47 [DEBUG]      10 proxy : ":1080"
2017-04-07T09:47:47 [DEBUG]      11 proxyAuth : ":"
2017-04-07T09:47:47 [DEBUG]      12 scriptEncoding : "UTF-8"
2017-04-07T09:47:47 [DEBUG]      13 webSecurityEnabled : "true"
2017-04-07T09:47:47 [DEBUG]      14 offlineStoragePath : ""
2017-04-07T09:47:47 [DEBUG]      15 localStoragePath : ""
2017-04-07T09:47:47 [DEBUG]      16 localStorageDefaultQuota : "-1"
2017-04-07T09:47:47 [DEBUG]      17 offlineStorageDefaultQuota : "-1"
2017-04-07T09:47:47 [DEBUG]      18 printDebugMessages : "true"
2017-04-07T09:47:47 [DEBUG]      19 javascriptCanOpenWindows : "true"
2017-04-07T09:47:47 [DEBUG]      20 javascriptCanCloseWindows : "true"
2017-04-07T09:47:47 [DEBUG]      21 sslProtocol : "default"
2017-04-07T09:47:47 [DEBUG]      22 sslCiphers : "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:RC4-SHA:RC4-MD5"
2017-04-07T09:47:47 [DEBUG]      23 sslCertificatesPath : ""
2017-04-07T09:47:47 [DEBUG]      24 sslClientCertificateFile : ""
2017-04-07T09:47:47 [DEBUG]      25 sslClientKeyFile : ""
2017-04-07T09:47:47 [DEBUG]      26 sslClientKeyPassphrase : ""
2017-04-07T09:47:47 [DEBUG]      27 webdriver : ":"
2017-04-07T09:47:47 [DEBUG]      28 webdriverLogFile : ""
2017-04-07T09:47:47 [DEBUG]      29 webdriverLogLevel : "INFO"
2017-04-07T09:47:47 [DEBUG]      30 webdriverSeleniumGridHub : ""
2017-04-07T09:47:47 [DEBUG] Phantom - execute: Script & Arguments
2017-04-07T09:47:47 [DEBUG]      script: "../examples/netlog.js"
2017-04-07T09:47:47 [DEBUG]      0 arg: "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
2017-04-07T09:47:47 [DEBUG] Phantom - execute: Starting normal mode
2017-04-07T09:47:47 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:47 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:47 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:47 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:47 [DEBUG] WebPage - updateLoadingProgress: 10
requested: {
    "headers": [
        {
            "name": "Accept",
            "value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        },
        {
            "name": "User-Agent",
            "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1"
        }
    ],
    "id": 1,
    "method": "GET",
    "time": "2017-04-07T13:47:47.664Z",
    "url": "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
}
2017-04-07T09:47:48 [DEBUG] CookieJar - Saved "NO_CACHE=1; domain=dev-phantom-failure-sample.pantheonsite.io; path=/"
received: {
    "body": "",
    "bodySize": 177,
    "contentType": "text/html; charset=UTF-8",
    "headers": [
        {
            "name": "Content-Encoding",
            "value": "gzip"
        },
        {
            "name": "Content-Type",
            "value": "text/html; charset=UTF-8"
        },
        {
            "name": "Server",
            "value": "nginx"
        },
        {
            "name": "Set-Cookie",
            "value": "NO_CACHE=1"
        },
        {
            "name": "Surrogate-Key-Raw",
            "value": ""
        },
        {
            "name": "X-Pantheon-Endpoint",
            "value": "88b2a64a-428d-4d22-b8ce-29613a51ed0a"
        },
        {
            "name": "X-Pantheon-Styx-Hostname",
            "value": "styx636a566b"
        },
        {
            "name": "X-Styx-Req-Id",
            "value": "styx-dde2b9122215fc657e2b7f38b1d43de8"
        },
        {
            "name": "X-Styx-Version",
            "value": "StyxGo"
        },
        {
            "name": "Fastly-Debug-Digest",
            "value": "cab4bb0b93cccd65398bdda9e1270dc9518b9dbdce450e32859932383a988f2e"
        },
        {
            "name": "Accept-Ranges",
            "value": "bytes"
        },
        {
            "name": "Date",
            "value": "Fri, 07 Apr 2017 13:47:48 GMT"
        },
        {
            "name": "Via",
            "value": "1.1 varnish, 1.1 varnish"
        },
        {
            "name": "Age",
            "value": "0"
        },
        {
            "name": "Connection",
            "value": "keep-alive"
        },
        {
            "name": "X-Served-By",
            "value": "cache-ord1726-ORD, cache-sjc3623-SJC"
        },
        {
            "name": "X-Cache",
            "value": "MISS, MISS"
        },
        {
            "name": "X-Cache-Hits",
            "value": "0, 0"
        },
        {
            "name": "X-Timer",
            "value": "S1491572868.993328,VS0,VE67"
        },
        {
            "name": "Vary",
            "value": "Accept-Encoding, Cookie, Cookie"
        },
        {
            "name": "Cache-Control",
            "value": "no-cache"
        },
        {
            "name": "X-Robots-Tag",
            "value": "noindex"
        }
    ],
    "id": 1,
    "redirectURL": null,
    "stage": "start",
    "status": 200,
    "statusText": "OK",
    "time": "2017-04-07T13:47:48.172Z",
    "url": "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
}
received: {
    "contentType": "text/html; charset=UTF-8",
    "headers": [
        {
            "name": "Content-Encoding",
            "value": "gzip"
        },
        {
            "name": "Content-Type",
            "value": "text/html; charset=UTF-8"
        },
        {
            "name": "Server",
            "value": "nginx"
        },
        {
            "name": "Set-Cookie",
            "value": "NO_CACHE=1"
        },
        {
            "name": "Surrogate-Key-Raw",
            "value": ""
        },
        {
            "name": "X-Pantheon-Endpoint",
            "value": "88b2a64a-428d-4d22-b8ce-29613a51ed0a"
        },
        {
            "name": "X-Pantheon-Styx-Hostname",
            "value": "styx636a566b"
        },
        {
            "name": "X-Styx-Req-Id",
            "value": "styx-dde2b9122215fc657e2b7f38b1d43de8"
        },
        {
            "name": "X-Styx-Version",
            "value": "StyxGo"
        },
        {
            "name": "Fastly-Debug-Digest",
            "value": "cab4bb0b93cccd65398bdda9e1270dc9518b9dbdce450e32859932383a988f2e"
        },
        {
            "name": "Accept-Ranges",
            "value": "bytes"
        },
        {
            "name": "Date",
            "value": "Fri, 07 Apr 2017 13:47:48 GMT"
        },
        {
            "name": "Via",
            "value": "1.1 varnish, 1.1 varnish"
        },
        {
            "name": "Age",
            "value": "0"
        },
        {
            "name": "Connection",
            "value": "keep-alive"
        },
        {
            "name": "X-Served-By",
            "value": "cache-ord1726-ORD, cache-sjc3623-SJC"
        },
        {
            "name": "X-Cache",
            "value": "MISS, MISS"
        },
        {
            "name": "X-Cache-Hits",
            "value": "0, 0"
        },
        {
            "name": "X-Timer",
            "value": "S1491572868.993328,VS0,VE67"
        },
        {
            "name": "Vary",
            "value": "Accept-Encoding, Cookie, Cookie"
        },
        {
            "name": "Cache-Control",
            "value": "no-cache"
        },
        {
            "name": "X-Robots-Tag",
            "value": "noindex"
        }
    ],
    "id": 1,
    "redirectURL": null,
    "stage": "end",
    "status": 200,
    "statusText": "OK",
    "time": "2017-04-07T13:47:48.173Z",
    "url": "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
}
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 30
2017-04-07T09:47:48 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 100
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 10
requested: {
    "headers": [
        {
            "name": "Accept",
            "value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        },
        {
            "name": "Referer",
            "value": "http://dev-phantom-failure-sample.pantheonsite.io/index.php"
        },
        {
            "name": "User-Agent",
            "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1"
        }
    ],
    "id": 2,
    "method": "GET",
    "time": "2017-04-07T13:47:48.175Z",
    "url": "http://dev-phantom-failure-sample.pantheonsite.io/target.php"
}
FAIL to load the address
2017-04-07T09:47:48 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:48 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "http://dev-phantom-failure-sample.pantheonsite.io/target.php"
received: {
    "contentType": null,
    "headers": [],
    "id": 2,
    "redirectURL": null,
    "stage": "end",
    "status": null,
    "statusText": null,
    "time": "2017-04-07T13:47:48.176Z",
    "url": "http://dev-phantom-failure-sample.pantheonsite.io/target.php"
}
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 100
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 10
2017-04-07T09:47:48 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 100
2017-04-07T09:47:48 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:48 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:48 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:48 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 10
2017-04-07T09:47:48 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:48 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:48 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:48 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2017-04-07T09:47:48 [DEBUG] WebPage - updateLoadingProgress: 100
2017-04-07T09:47:48 [DEBUG] WebPage - setupFrame ""
2017-04-07T09:47:48 [DEBUG] CookieJar - Purged (session) "NO_CACHE=1; domain=dev-phantom-failure-sample.pantheonsite.io; path=/"
Hoiy commented

Inspired by @outboundexplorer ,

Added this '--cookies-file=/tmp/phantom/cookies.txt' to my phantom config and finally able to get status = 'success' for page.open('http://glbn.ca/TImpbv') after probing for a few hours.

It looks like ads provider scripts has strange behaviours if cookies is disabled, which causes all the strange operation canceled in PhantomJS. There are still a lot of script errors after that, but at least it works for me now. Hope this help!

P.S. The first loading would still fail, but second loading and afterwards would be success after cookie is setup (I guess?)

@Hoiy thanks for the suggestion... unfortunately, it still doesn't work for me. I continue to get "Operation canceled" on certain pages.

@Hoiy Thanks a lot. It's not fixed for me either.

@vitallium It happens with 2.5 too.

The problem is that when the bug is triggered, success is not "success". Before I was doing this:

page.open(url, function(success) {
     if(success === "success") {
          // Do a lot of important phantom stuff
     } else {
          // Errors out. Something went wrong.
     }
}

But right now I'm supposing it's always working ok, so:

page.open(url, function(success) {
     if (success != "success") {
          console.log("-----  Not ok, but I'll do my works anyways ----\n");<
     }

     // Do a lot of important phantom stuff anyways
}
jo-37 commented

I had the same problem. A simple modification solved it for me. Changed

page.open(url, function(success) {
     if(success === "success") {
        page.render(output);
        phantom.exit();
     } else {
        // Error
     }
}

to

page.open(url, function(success) {
     if(success === "success") {
        window.timeout(function () {
                page.render(output);
                phantom.exit();
        }, 2000);
     } else {
        // Error
     }
}

like it is done in the example script renderize.js. The timeout must be chosen large enough, of course.

For those looking for alternative solutions, try https://developers.google.com/web/updates/2017/04/headless-chrome

I found that the Operation canceled error was an artifact from a page.settings.resourceTimeout that was set too low. Increasing that value resolved the issue.

This bug is also affecting me. bump

i am currently facing this issue and cannot resolve it after reading all of this my output is the following.

2017-11-22T19:39:10 [DEBUG] CookieJar - Created but will not store cookies (use option '--cookies-file=' to enable persistent cookie storage)
2017-11-22T19:39:10 [DEBUG] Set "http" proxy to: "proxy.crawlera.com" : 8010
2017-11-22T19:39:10 [DEBUG] Phantom - execute: Configuration
2017-11-22T19:39:10 [DEBUG] 0 objectName : ""
2017-11-22T19:39:10 [DEBUG] 1 cookiesFile : ""
2017-11-22T19:39:10 [DEBUG] 2 diskCacheEnabled : "false"
2017-11-22T19:39:10 [DEBUG] 3 maxDiskCacheSize : "-1"
2017-11-22T19:39:10 [DEBUG] 4 diskCachePath : ""
2017-11-22T19:39:10 [DEBUG] 5 ignoreSslErrors : "true"
2017-11-22T19:39:10 [DEBUG] 6 localUrlAccessEnabled : "true"
2017-11-22T19:39:10 [DEBUG] 7 localToRemoteUrlAccessEnabled : "false"
2017-11-22T19:39:10 [DEBUG] 8 outputEncoding : "UTF-8"
2017-11-22T19:39:10 [DEBUG] 9 proxyType : "http"
2017-11-22T19:39:10 [DEBUG] 10 proxy : "proxy.crawlera.com:8010"
2017-11-22T19:39:10 [DEBUG] 11 proxyAuth : ":"
2017-11-22T19:39:10 [DEBUG] 12 scriptEncoding : "UTF-8"
2017-11-22T19:39:10 [DEBUG] 13 webSecurityEnabled : "true"
2017-11-22T19:39:10 [DEBUG] 14 offlineStoragePath : ""
2017-11-22T19:39:10 [DEBUG] 15 localStoragePath : ""
2017-11-22T19:39:10 [DEBUG] 16 localStorageDefaultQuota : "-1"
2017-11-22T19:39:10 [DEBUG] 17 offlineStorageDefaultQuota : "-1"
2017-11-22T19:39:10 [DEBUG] 18 printDebugMessages : "true"
2017-11-22T19:39:10 [DEBUG] 19 javascriptCanOpenWindows : "true"
2017-11-22T19:39:10 [DEBUG] 20 javascriptCanCloseWindows : "true"
2017-11-22T19:39:10 [DEBUG] 21 sslProtocol : "any"
2017-11-22T19:39:10 [DEBUG] 22 sslCiphers : "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:RC4-SHA:RC4-MD5"
2017-11-22T19:39:10 [DEBUG] 23 sslCertificatesPath : ""
2017-11-22T19:39:10 [DEBUG] 24 sslClientCertificateFile : ""
2017-11-22T19:39:10 [DEBUG] 25 sslClientKeyFile : ""
2017-11-22T19:39:10 [DEBUG] 26 sslClientKeyPassphrase : ""
2017-11-22T19:39:10 [DEBUG] 27 webdriver : ":"
2017-11-22T19:39:10 [DEBUG] 28 webdriverLogFile : ""
2017-11-22T19:39:10 [DEBUG] 29 webdriverLogLevel : "INFO"
2017-11-22T19:39:10 [DEBUG] 30 webdriverSeleniumGridHub : ""
2017-11-22T19:39:10 [DEBUG] Phantom - execute: Script & Arguments
2017-11-22T19:39:10 [DEBUG] script: "/tmp/742460d84df8a9ee3738"
2017-11-22T19:39:10 [DEBUG] Phantom - execute: Starting normal mode
2017-11-22T19:39:10 [DEBUG] WebPage - setupFrame ""
2017-11-22T19:39:10 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:10 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:10 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:10 [DEBUG] WebPage - updateLoadingProgress: 10
2017-11-22T19:39:15 [DEBUG] Network - Resource request error: QNetworkReply::NetworkError(OperationCanceledError) ( "Operation canceled" ) URL: "https://www.google.com.pk/"
2017-11-22T19:39:15 [DEBUG] WebPage - updateLoadingProgress: 100
2017-11-22T19:39:15 [DEBUG] WebPage - evaluateJavaScript "(function() { return (function () {\n \n var styles = {};\n \n for(var property in styles) {\n document.body.style[property] = styles[property];\n }\n})(); })()"
2017-11-22T19:39:15 [DEBUG] WebPage - setupFrame ""
2017-11-22T19:39:15 [DEBUG] WebPage - evaluateJavaScript result QVariant(Invalid)
\n2017-11-22T19:39:15 [DEBUG] WebPage - setupFrame ""
2017-11-22T19:39:15 [DEBUG] WebPage - updateLoadingProgress: 10
2017-11-22T19:39:15 [DEBUG] WebPage - setupFrame ""
2017-11-22T19:39:15 [DEBUG] WebPage - updateLoadingProgress: 100
2017-11-22T19:39:15 [DEBUG] WebPage - setupFrame ""
2017-11-22T19:39:15 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:15 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:15 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:15 [DEBUG] WebPage - updateLoadingProgress: 10
2017-11-22T19:39:15 [DEBUG] WebPage - setupFrame ""
2017-11-22T19:39:15 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:15 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:15 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r")))
2017-11-22T19:39:15 [DEBUG] WebPage - updateLoadingProgress: 100
2017-11-22T19:39:15 [DEBUG] WebPage - setupFrame ""