By big errors I mean those that prominently display
Error [number] Thus far I have had:
Error 4
Socket operation timed out
This seems to be the ordinary network unreachable error)
Error 8
The specified configuration cannot be used.
Also some kind of network error, but with added nastiness - the tab becomes unusable. To still go to the address in the address field, the workaround is to duplicate the tab.
And today
Error 99
Unknown error
This error still permitted a simple refresh and the tab continued to work alright.
Error 8 and 99 I have encountered at Vivaldi.net
@ersi, we could try to debug it using this property:
https://qt-project.org/doc/qt-5/qwebpage-errorpageextensionoption.html#domain-var
https://qt-project.org/doc/qt-5/qwebpage.html#ErrorDomain-enum
But that would require custom build...
Error 99 seems to come from QtNetwork:
QNetworkReply::UnknownNetworkError 99 an unknown network-related error was detected
In case of error 8 it could be:
QNetworkReply::NetworkSessionFailedError 8 the connection was broken due to disconnection from the network or failure to start the network.
And error 4 seems to be:
QNetworkReply::TimeoutError 4 the connection to the remote server timed out
If errors 8 and 99 are easily reproducible then we should report them upstream.
Okay, to summarise, Error 4 is a common network error. 8 and 99 less common network errors, and 8 has some noticeable characteristics that set it apart from mere network error. I have encountered 8 and 99 only at Vivaldi.net
Unfortunately I am not in position yet to even think of making my own custom build for extra testing. I am slowly figuring out what this means, and perhaps in two months, when I have vacation, I will be able to make my own first build of anything. Thanks to your instructions in other threads, Emdek, and thanks to the little editable sripts in AUR when I install Otter, I will eventually make it, maybe.
Right now I had a different Error 99: Invalid argument.
Is it normal that an error changes its message? (Earlier I reported Error 99 as Unknown error)
@ersi, this is possible, message could be used as additional context or this error came from different layer which uses the same number (possible for QtNetwork and WebKit errors).
Update:
Now these errors are logged to console, showing in which domain they happened.
Now I found a funny one:
Error 200
OK
@ersi, is it reproducible?
It's unspecifiable. It occurs randomly at network connection difficulties.
I find that on http://delijn.be/ Otter gives an "Error 2" instead of quietly redirecting to https://delijn.be/ like any other browser. I assume it's a QtWebkit issue, because Midori says
Error - http://delijn.be/
The page 'http://delijn.be/' couldn't be loaded.
Message Corrupt
I don't know if it's an issue with that specific site or a more general one. If it's not present in QtWebEngine let's forget about it. :P
@ersi, there was similar issue (AFAIR related to WiFi) which should be fixed in newer versions of Qt.
@Frenzie, it might be worth reporting upstream, if Midori has similar issue then it might be something more generic, maybe malformed reply or something like that.
Error 400
Redirection limit reached
The error in the previous post appears rather consistently at a server after tinkering with cookie settings and other privacy settings recently. At another server I consistently get this error:
Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
Cookie
/n
The specific tinkering involved was to set cookies off and then allow them in website preferences. Looks like something else gets affected too, the servers don't like it, and I don't know how to get them back to respond kindly.
@ersi, could you please check list of cookies for that server (can be seen in Website Preferences)?
Maybe it's bigger or something like that?
So, about the two latest errors that severely bug me and prevent usage of websites. The problems began when I disabled cookies and allowed them selectively for certain websites.
First this:
Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
Cookie
/n
I tried deleting and recollecting cookies. Nothing worked, but the website is working again now. Maybe they changed something on their side. In private window and with a fresh profile (default settings) the website always worked.
Then this, on another website
Error 400
Redirection limit reached
My ideas are up. The website only works in fresh profile with default settings and in private window. Looks like I have to begin re-building my profile again from scratch because of this single website.
A serious correction. The cookie/header bad request error has not disappeared. It has simply moved on and appears after more clicks on the website than just the first few. It's present in some indispensable websites such as Github and Transifex. Trying to work myself past this problem now.
@ersi, I've created small patch to output contents of cookies header and list of cookies for main request of each page load to terminal.
You can save it as
patch.diff, place it in the main directory of source tree and run:
patch -p1 < patch.diff
And then recompile and run from terminal.
diff --git a/src/modules/backends/web/qtwebkit/QtWebKitNetworkManager.cpp b/src/modules/backends/web/qtwebkit/QtWebKitNetworkManager.cpp
index cc142fb..c804028 100644
--- a/src/modules/backends/web/qtwebkit/QtWebKitNetworkManager.cpp
+++ b/src/modules/backends/web/qtwebkit/QtWebKitNetworkManager.cpp
@@ -461,6 +461,9 @@ QNetworkReply* QtWebKitNetworkManager::createRequest(QNetworkAccessManager::Oper
if (!m_baseReply)
{
m_baseReply = reply;
+
+ qDebug() << "cookies header for" << reply->url().toString() << "\n" << reply->request().rawHeader("Cookie");
+ qDebug() << "cookies:" << m_cookieJarProxy->cookiesForUrl(reply->url());
}
m_replies[reply] = qMakePair(0, false);
Thanks, but what is "source tree"? And what does it mean to "recompile"?
EDIT: The way I install and update Otter these days is to take the otter-browser-git PKGBUILD (https://aur.archlinux.org/packages/ot/otter-browser-git/PKGBUILD) file, put it in a folder, then cd to that folder and run makepkg, which is an Arch thing that executes everything written in PKGBUILD file. This builds (compiles?), without any further intervention, the most update Otter package for me, which I can install with pacman (Arch equivalent of Debian's apt-get).
This process leaves behind traces like this:
- otter-browser directory
- otter-browser-git-0.9.{blabla}.pkg.tar.xz installable package
- pkg directory
- src directory <-- is this the source tree where I am supposed to put the patch?
And how should I recompile?
@ersi, I'm not familiar with PKGBUILD, so I suggest to bypass it in this case, producing local binary file without installing.
You will need to follow these steps:
1. clone source tree:
git clone git://github.com/OtterBrowser/otter-browser.git
2. go to
otter-browser directory and create file containing patch as
patch.diff;
3. apply patch:
patch -p1 < patch.diff
4. execute commands to build binary file:
mkdir build
cd build
cmake ../
make
5. go to
build directory and execute
./otter-browser from terminal.
Thanks for the patch, but unfortunately it's not working all the way. Transifex is worst. Transifex only works in private tab. In normal tabs, no matter how I set the cookies and referrers both site-specifically and globally, Transifex gives
400 Bad Request
Request Header Or Cookie Too Large
nginx
or sometimes
400 Bad request
Your browser sent an invalid request.
Github began working though. Not sure if because of the patch.
With another website I need to use, it works fine in private tab, and it works in normal tab when global cookies are generously enabled. In normal tab with site-specific permissive settings, it gives
Error 400
Redirection limit reached
I applied the patch as you instructed. I did
git clone git://github.com/OtterBrowser/otter-browser.git
cd otter-browser
Then I took your patch text and saved it as the file
patch.diff. Then
patch -p1 < patch.diff
It informed me that the patch was applied.
Then proceeded to build the package. I only modified the cmake command as PKGBUILD instructs
cmake -DCMAKE_INSTALL_PREFIX="/usr" ../
Otherwise it was precisely according to your instructions, and I launched Otter and got the results I reported.
Transifex has been a bad offender already earlier. I doubt it can be fixed. With cookies globally enabled, Transifex doesn't show up in my old Otter profile at all. With cookies enabled only site-specifically, I can see the first page, but any next click gives an error. As said, it works in private tab though, so I have access to translations. (Long time since I had time for the translation, and now it's harder than ever.)
@ersi, I think that we have small misunderstanding here, this patch is supposed to only output debug information (list of cookies and header sent to server), not fixing the issue. ;-)
Indeed, I thought patches were meant to fix things. So on to the next question: How to "output debug information"?
EDIT: Is it so that I launch Otter by ./otter-browser, go to the websites, and observe what's going on in the terminal? The output is in the terminal?
@ersi, yeah, output is sent to terminal.
And what do I do with the output? Decipher it or send to you to be deciphered?
Looks like the Bad Request cookie problem (error 400 on the server side) is spreading. Vivaldi is giving it now too.
To be clear again, the kind of errors I am talking about appear when cookies are disabled globally, but enabled site-specifically.
@ersi, we can try to investigate it on IRC.