org2blog / org2blog

Blog from Org mode to WordPress.

Home Page:https://github.com/org2blog/org2blog/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem trying to load categories inside of ‘org2blog-user-login’

AtomicNess123 opened this issue · comments

Any ideas why this happens after I press '4' to insert my password? Thanks. I saw a similar closed issue but it wasn't clear how it got solved (I reinstalled the package). I have set setq org2blog/wp-blog-alist with my blog site address and username. I am requested the password, which I enter, and then I get this:

Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2020-03-25T19:57:00+00:00
Please report that along with the following details:
(wrong-type-argument listp (nil . URL/HTTP Error: 200))
Org2Blog Runtime: Org2Blog 1.1.8, Emacs 26.3, Org Mode 9.3.6, MetaWeblog 1.1.1, XML-RPC 1.6.12

Hi @Gahamelas I'm sorry to hear that but I know that we can get it resolved soon.

From what I can see Org2Blog is attempting to contact your blog and get a list of categories when the error happens. The error message reveals very little. HTTP code 200 means that the call succeeded, but somewhere else something is going wrong. Right now we have nothing to go on. So here is what I think we can do to narrow it down:

One thing that could help is to get more detail. If you are willing to enable Elisp debugging and try logging in again then you could post the detailed error message. Here is how to enable display of more Elisp level information and make this happen:

  • You might already have this debug on error enabled. If you do, then you can skip the next step.
  • Enable debugging on error by calling the function toggle-debug-on-error
  • Try logging in
  • When an error occurs it will pop open a new buffer. Copy those contents, remove any private details like the password for example, and post it here
  • Call toggle-debug-on-error to disable debugging and return Emacs to how you had it before

Another option is to get even more detailed reporting enabled that looks a few different places behind the scenes. Enable this by choosing UI [Reporting On]. Try logging in. It should fail as you already encountered (or perhaps not let me know either way). Now you can look at some buffers that provide detailed debug information. Just like before be sure to remove your password and other private information before sharing the details here:

  • *Org WordPress Export* : The Org2Blog level request content
  • request-data: The XML-RPC request
  • func-call: The XML-RPC concise view
  • *URL-DEBUG*: Message transfer layer debugging

Thanks for your help. I couldn't understand how to enable "UI [Reporting On]". I tried M-x UI or M-x Reporting... but nothing came up. However, this is my error message when turning toggle-debug-on-error.

Debugger entered--Lisp error: (wrong-type-argument listp (nil . "URL/HTTP Error: 200"))
  assoc("categoryName" (nil . "URL/HTTP Error: 200"))
  #f(compiled-function (category) #<bytecode 0x442b9a45>)((nil . "URL/HTTP Error: 200"))
  mapcar(#f(compiled-function (category) #<bytecode 0x442b9a45>) ((nil . "URL/HTTP Error: 200")))
  org2blog--load-categories()
  org2blog-user-login()
  funcall-interactively(org2blog-user-login)
  call-interactively(org2blog-user-login record nil)
  command-execute(org2blog-user-login record)
  helm-M-x(nil #("org2blog-user-login" 0 19 (match-part "org2blog-user-login")))
  funcall-interactively(helm-M-x nil #("org2blog-user-login" 0 19 (match-part "org2blog-user-login")))
  call-interactively(helm-M-x nil nil)
  command-execute(helm-M-x)

Thanks for your help.

That is a good place to start. I'm going to add some technical details here that you can ignore for now I have a question for you at the end.

For future readers in this issue the error is occurring in org2blog--load-categories. In particular in this bit of code:

(defun org2blog--load-categories ()
  "Load categories from server.
Caller must handle any errors."
  (let* ((raw (metaweblog-get-categories
               org2blog-xmlrpc
               org2blog-username
               org2blog-password
               org2blog-blogid))
         (cats (mapcar
                (lambda (category) (cdr (assoc "categoryName" category)))
                raw)))
    cats))

The raw value is a list with values like this

(("categoryId" . 453) ("parentId" . 0) ("description" . "Unicode") ("categoryDescription") ("categoryName" . "Unicode") ("htmlUrl" . https://www.wisdomandwonder.com/category/unicode") ("rssUrl" . "https://www.wisdomandwonder.com/category/unicode/feed"))

It looks like the error happening because there is a nil value for the cdr of the list for "categoryName". This call (assoc "categoryName" nil) is essentially what is happening.

@Gahamelas When you log into your blog, go to the WordPress Admin Page, Posts, Categories: are there any categories listed in there?

Thanks for your systematic-ness :) I do have categories listed there ("Music", "Politics", "Personal", etc.).

Gotcha. Not what I expected: it would have been an easy explanation if there were no Categories lol!

Next step is to try that more detailed logging it is when you bring up the main menu: [Reporting On]

Screenshot 2020-04-20 14 29 00

Now you can look at some buffers that provide detailed debug information. Just like before be sure to remove your password and other private information before sharing the details here:

  • request-data: The XML-RPC request
  • func-call: The XML-RPC concise view
  • *URL-DEBUG*: Message transfer layer debugging

If you are willing to paste that information into a file and attach it to this issue then please do so.

Thanks again. Indeed, would have been easier if there were no categories!
Attached the info requested.
log.txt

Have the exact same issue. Attaching my logs too:
What I have tried: backtracked to versions upto v.1.1.1. Same problem persists. Beyond that, there are errors related to metaweblog (not found it says).
Was super excited to discover this package but got stuck right at the login. Unfortunately I do not have much emacs knowledge to debug more. I understand cdr is the problem but I'm not sure how to debug further.

warnings:

Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2020-05-21T13:51:34+00:00
Please report that along with the following details:
(wrong-type-argument listp (nil . URL/HTTP Error: 200))
Org2Blog Runtime: Org2Blog 1.1.8, Emacs 26.3, Org Mode 9.3.6, MetaWeblog 1.1.1, XML-RPC 1.6.12

func-call:


((methodCall nil (methodName nil "metaWeblog.getCategories") (params nil (param nil (value nil (string nil "1"))) (param nil (value nil (string nil "USERNAME"))) (param nil (value nil (string nil "PASSWORD"))))))

request-data:


"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<methodCall>
  <methodName>metaWeblog.getCategories</methodName>
  <params>
    <param>
      <value>
        <string>1</string>
      </value>
    </param>
    <param>
      <value>
        <string>USERNAME</string>
      </value>
    </param>
    <param>
      <value>
        <string>PASSWORD</string>
      </value>
    </param>
  </params>
</methodCall>
"
`

http -> Contacting host: MYDOMAIN:443
http -> Marking connection as busy: MYDOMAIN:443 #<process MYDOMAIN>
http -> Request is: 
POST /wp-admin/ HTTP/1.1
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: MYDOMAIN
Accept-encoding: gzip
Accept-charset: utf-8;q=1, iso-8859-1;q=0.5
Accept: */*
User-Agent: xml-rpc.el/1.6.12 URL/Emacs Emacs/26.3 (X11; x86_64-pc-linux-gnu)
Cookie: wordpress_test_cookie=WP+Cookie+check
Connection: close
Content-Type: text/xml; charset=utf-8
Content-length: 400

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>metaWeblog.getCategories</methodName>
  <params>
    <param>
      <value>
        <string>1</string>
      </value>
    </param>
    <param>
      <value>
        <string>USERNAME</string>
      </value>
    </param>
    <param>
      <value>
        <string>PASSWORD</string>
      </value>
    </param>
  </params>
</methodCall>

retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer  *http MYDOMAIN:443*>)
http -> Calling after change function `url-http-wait-for-headers-change-function' for `#<process MYDOMAIN>'
http -> url-http-wait-for-headers-change-function ( *http MYDOMAIN:443*)
http -> Saw end of headers... ( *http MYDOMAIN:443*)
http -> url-http-parse-response called in ( *http MYDOMAIN:443*)
http -> Saw chunked encoding.
http -> Calling initial chunked-encoding for extra data at end of headers
http -> Reading chunk 0 (571 577 6)
http -> Saw start of chunk 1 (length=0, start=572
http -> Saw end of stream chunk!
http -> Removing terminator of last chunk
http -> Marking connection as free: MYDOMAIN:443 #<process MYDOMAIN>
http -> url-http-parse-headers called in ( *http MYDOMAIN:443*)
http -> url-http-parse-response called in ( *http MYDOMAIN:443*)
http -> Parsed HTTP headers: class=3 status=302
http -> Contacting host: MYDOMAIN:443
http -> Marking connection as busy: MYDOMAIN:443 #<process MYDOMAIN>
http -> Request is: 
POST /wp-login.php?redirect_to=https%3A%2F%2FMYDOMAIN%2Fwp-admin%2F&reauth=1 HTTP/1.1
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: MYDOMAIN
Accept-encoding: gzip
Accept-charset: utf-8;q=1, iso-8859-1;q=0.5
Accept: */*
User-Agent: xml-rpc.el/1.6.12 URL/Emacs Emacs/26.3 (X11; x86_64-pc-linux-gnu)
Cookie: wordpress_test_cookie=WP+Cookie+check
Connection: close
Content-Type: text/xml; charset=utf-8
Content-length: 400

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>metaWeblog.getCategories</methodName>
  <params>
    <param>
      <value>
        <string>1</string>
      </value>
    </param>
    <param>
      <value>
        <string>USERNAME</string>
      </value>
    </param>
    <param>
      <value>
        <string>PASSWORD</string>
      </value>
    </param>
  </params>
</methodCall>

http -> Finished parsing HTTP headers: nil
http -> Spinning waiting for headers...
retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer  *http MYDOMAIN:443*>)
retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer  *http MYDOMAIN:443*-528320>)
http -> Calling after change function `url-http-wait-for-headers-change-function' for `#<process MYDOMAIN>'
http -> url-http-wait-for-headers-change-function ( *http MYDOMAIN:443*-528320)
http -> Saw end of headers... ( *http MYDOMAIN:443*-528320)
http -> url-http-parse-response called in ( *http MYDOMAIN:443*-528320)
http -> Saw chunked encoding.
http -> Calling initial chunked-encoding for extra data at end of headers
http -> Reading chunk 0 (2560 4063 1503)
http -> Saw start of chunk 1 (length=5665, start=2561
http -> Reading chunk 1 (2560 4063 1503)
http -> Still need 4163 bytes to hit end of chunk
http -> Still spinning for next chunk...
http -> Spinning waiting for headers...
http -> Calling after change function `url-http-chunked-encoding-after-change-function' for `#<process MYDOMAIN>'
http -> Reading chunk 1 (4057 8153 4096)
http -> Still need 73 bytes to hit end of chunk
http -> Still spinning for next chunk...
http -> Calling after change function `url-http-chunked-encoding-after-change-function' for `#<process MYDOMAIN>'
http -> Reading chunk 1 (8153 8233 80)
http -> Got to the end of chunk #1!
http -> Saw start of chunk 2 (length=0, start=8226
http -> Saw end of stream chunk!
http -> Removing terminator of last chunk
http -> Marking connection as free: MYDOMAIN:443 #<process MYDOMAIN>
http -> url-http-parse-headers called in ( *http MYDOMAIN:443*-528320)
http -> url-http-parse-response called in ( *http MYDOMAIN:443*-528320)
http -> Parsed HTTP headers: class=2 status=200
http -> Found 19 Set-Cookie headers
http -> Finished parsing HTTP headers: t
http -> Marking connection as free: MYDOMAIN:443 #<process MYDOMAIN>
http -> Activating callback in buffer ( *http MYDOMAIN:443*-528320): #[128 "\302\303\304p#\210\300\305\240\210\301p\240\207" [(nil) (#<buffer  *http MYDOMAIN:443*-528320>) url-debug retrieval "Synchronous fetching done (%S)" t] 5 "

(fn &rest IGNORED)"] ((:redirect "https://MYDOMAIN/wp-login.php?redirect_to=https%3A%2F%2FMYDOMAIN%2Fwp-admin%2F&reauth=1" :peer (:certificate (:version 3 :serial-number "00:a7:81:0b:64:b5:29:c1:a8:69:00:b6:ed:8c:1a:08:68" :issuer "C=GB,ST=Greater Manchester,L=Salford,O=COMODO CA Limited,CN=COMODO RSA Domain Validation Secure Server CA" :valid-from "2018-09-06" :valid-to "2020-09-05" :subject "OU=Domain Control Validated,OU=EssentialSSL Wildcard,CN=*.wordpress.com" :public-key-algorithm "RSA" :certificate-security-level "Medium" :signature-algorithm "RSA-SHA256" :public-key-id "sha1:92:a5:ee:cb:d2:73:7e:c3:5d:73:51:a2:cf:0c:8d:76:fb:23:65:28" :certificate-id "sha1:6a:0f:88:d6:2d:7a:cc:af:24:01:b7:7a:7a:68:9c:9f:fd:76:c4:be") :key-exchange "ECDHE-RSA" :protocol "TLS1.2" :cipher "CHACHA20-POLY1305" :mac "AEAD")))
retrieval -> Synchronous fetching done (#<buffer  *http MYDOMAIN:443*-528320>)

Okay I tried a few more things: The problematic part is this call in metaweblog.el


(print (xml-rpc-method-call org2blog-xmlrpc
                     "metaWeblog.getCategories"
                     org2blog-blogid
                     org2blog-username
                     org2blog-password)

So I did a bit of googling and I see here that the org2blog-xmlrpc should be "DOMAIN/xmlrpc.php" I think I made a copy-paste mistake from the README. I guess the link has changed.

Thanks! Does this mean you fixed it?

Thanks! Does this mean you fixed it?

Not sure what your original problem was. I have documented the steps I followed. Maybe you can try backtracking too. I'm not a package contributor so I am not aware of the internals very well.

@Gahamelas and @sprajagopal My apologies for my absence replying here. At the time of writing this comment the world was still under quarantine from COVID-19 and it certainly affected a lot of people in a lot of ways!

After reading all of the logs you thoughtfully shared nothing jumps out at me as a problem. The fact that the error code is 200 is strange because I understand 200 to simply mean that "the request was OK". Have there been any changes in your testing and outcome?

Please let me know what is your current status.

@Gahamelas and @sprajagopal My apologies for my absence replying here. At the time of writing this comment the world was still under quarantine from COVID-19 and it certainly affected a lot of people in a lot of ways!

After reading all of the logs you thoughtfully shared nothing jumps out at me as a problem. The fact that the error code is 200 is strange because I understand 200 to simply mean that "the request was OK". Have there been any changes in your testing and outcome?

Please let me know what is your current status.

It turned out to be a mistake on my config (which I have documented above). Works as expected.
Stay safe and take care!

Thanks, @grettke , and hoping you are fine. I just tested it again and still get the identical message referenced in my initial post . @sprajagopal , I am no programmer and couldn't follow your steps. What exactly did you modify and did you modify it in your init-.el file? You mentioned the problem was in"org2blog-xmlrpc" which should be "DOMAIN/xmlrpc.php". But I don't know what to do. Apologies for my tech-ignorance.

update: ok, I see now! I changed my login user name to www.mysite.com/xmlrpc.php, since before it was not like that, and now I get a different error:

(error Error during request: 403)

As I read: "The HTTP 403 Forbidden client error status response code indicates that the server understood the request but refuses to authorize it."

How to allow it?

Excellent, that is forward progress!

First thing to do is to test out accessing the server, at a more technical level, using the web browser and not using Org2Blog.

Can you please open a web browser, go to https://myblog.com/xmlrpc.php, and copy and paste the results here?

Thanks! When I go to that link, the page is blank with the text: "Denied".

Gotcha. That explains the 403 error: your computer cannon talk to WordPress at all using the XML-RPC protocol. Like you see, you are being denied. That means your computer is reaching WordPress, which is good. I suspect that WordPress or the web server is denying you access though.

The first thing to find out is whether or not XML-RPC is enabled in WordPress. If it is not enabled, then enable it, and try doing the same test again and let me know what happens.

If XML-RPC is enabled, then it means that probably the web server won't let you reach WordPress at all on this URL. If that is the case then it would be a good time to contact the help desk for whoever runs that server.

Either way let me know how it goes.

Yes, I have already checked XML-RPC, and it should be enabled by default in Wordpress. I did not see anything there even checked .htdocs where it is being denied. I will check my hosting provider. Thanks for your insights.

Ok, I can confirm that it was on the server's side. I had to add some code to the .htaccess file and it's working now! Thank you!

Yesterday I had an error just like this, except with HTTP code 409. I had recently modified my .emacs configuration, so I reverted those changes, but the error persisted. (I had installed some new packages, which were totally unrelated to Org2Blog, e.g. blacken and jedi.) I also reinstalled Org2Blog, to no avail.

Today I was going to choose UI [Reporting On] so that I could provide a detailed report, but the error has disappeared. So I un-reverted my .emacs modifications, and everything still works. I don't remember changing anything between yesterday evening (when I still had the problem) and now. That's a little mysterious.

Anyway, Org2Blog works great and makes my blogging easier. Thanks!

@Gahamelas

I can confirm that it was on the server's side

Glad to hear that this is resolved and thanks for the update.

@TheodoreEhrenborg

That's a little mysterious.

Thanks for sharing that.

I've had exactly that same kind of thing happen around 10 times in my Org2Blogging life: Org2Blog quits working, test everything, revert reset reinstall everything, nothing fixes it for days/weeks/months. The last time it happened was due to a bug in the network library that Emacs uses. So that happens, and it got resolved. Before that, my server host was filtering my traffic, which is normal. However, somehow it broke the channel when Emacs connected to the server, without explaining why. Those experiences have guided the detailed debugging process documentation and steps that you already saw.

Kudos to you for keeping at it, and thanks for the kind words.

I had this problem again a few days later, and turning my computer's wi-fi on and off fixed it.

@TheodoreEhrenborg Thanks for sharing that. I added it to the process as something to consider in the bug report.

I haven't used org2blog since November 10 2020, on the same windows laptop I was trying from today, and it was working then, but it isn't working today.

I'm guessing this isn't really a bug in org2blog? But, is the problem in the wordpress.com config? Or in the emacs config? Or in the versions of packages in emacs?

I haven't deliberately changed any settings on my blog or any org2blog-config in emacs, but the blog is hosted by wordpress.com and they may have changed some settings..?

I have googled the problem and trawled through the wordpress settings without finding anything.

Description of the problem:

Today, when I tried to create a new buffer, I got this:

Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2021-07-15T10:37:50+02:00
Please report that along with the following details:
(error Error during request: 403)
Org2Blog Runtime: Org2Blog 1.1.1, Emacs 26.3, Org Mode 9.1.9, MetaWeblog 1.1.1, XML-RPC 1.6.12

I added categories and tags and some dummy content and tried saving, and got this error (identical to the create buffer error):

Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2021-07-15T10:42:25+02:00
Please report that along with the following details:
(error Error during request: 403)
Org2Blog Runtime: Org2Blog 1.1.1, Emacs 26.3, Org Mode 9.1.9, MetaWeblog 1.1.1, XML-RPC 1.6.12

I was using org2blog 1.1.1 from melpa stable so I upgraded to the current melpa stable, i.e. 1.1.11, but I got the same error there:

Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2021-07-15T10:46:19+02:00
Please report that along with the following details:
(error Error during request: 403)
Org2Blog Runtime: Org2Blog 1.1.11, Emacs 26.3, Org Mode 9.1.9, MetaWeblog 1.1.1, XML-RPC 1.6.12

My org2blog settings in .emacs, are :

(when (and
       (locate-library "org2blog")
       (locate-library "metaweblog"))
  (require 'org2blog)
  (require 'netrc)
  (setq blog (netrc-machine (netrc-parse netrc-file) "steinar.bang.priv.no" t))
  (setq org2blog/wp-blog-alist
        (list
         (list "steinars-blogg"
               :url "http://steinar.bang.priv.no/xmlrpc.php"
               :username (netrc-get blog "login")
               :password (netrc-get blog "password")))))

When I try opening http://steinar.bang.priv.no/xmlrpc.php in a browser, logged in to wordpress.com, I get a 405 response, with the content:

XML-RPC server accepts POST requests only.

I tried upgrading org2blog 1.1.11 from melpa stable to 20210422.339 from melpa, but I got the same error messages.

It looks like the error occurs when org2blog tries to fetch the list of categories?

Changes to the xml-rpc API?

This issue is closed I see. I encountered it when I googled for the error message.

Should I open a new issue for my problems?

I did Ctrl-j behind

(org2blog-user-report t)

in the scratch buffer of the emacs running org2blog 1.1.11 and then pressed 'e' in org2blog/user-interface and this is what I got in *Warnings*:

Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2021-07-15T13:32:14+02:00
Please report that along with the following details:
(error Error during request: 403)
Org2Blog Runtime: Org2Blog 1.1.1, Emacs 26.3, Org Mode 9.1.9, MetaWeblog 1.1.1, XML-RPC 1.6.12
Error (org2blog/wp): I’m sorry I ran into a problem trying to load categories inside of ‘org2blog-user-login’.
Error (org2blog/wp): 2021-07-15T16:14:45+02:00
Please report that along with the following details:
(error Error during request: 403)
Org2Blog Runtime: Org2Blog 1.1.1, Emacs 26.3, Org Mode 9.1.9, MetaWeblog 1.1.1, XML-RPC 1.6.12

and this is what I got in *URL-DEBUG*:

http -> Contacting host: steinar.bang.priv.no:80
http -> Marking connection as busy: steinar.bang.priv.no:80 #<process steinar.bang.priv.no>
http -> Request is: 
POST /xmlrpc.php HTTP/1.1
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: steinar.bang.priv.no
Accept-encoding: gzip
Accept-charset: utf-8;q=1, iso-8859-1;q=0.5
Accept: */*
User-Agent: xml-rpc.el/1.6.12 URL/Emacs Emacs/26.3 (Windows-NT; 32bit; i686-w64-mingw32)
Connection: close
Content-Type: text/xml; charset=utf-8
Content-length: 402

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>metaWeblog.getCategories</methodName>
  <params>
    <param>
      <value>
        <string>1</string>
      </value>
    </param>
    <param>
      <value>
        <string>xxxx</string>
      </value>
    </param>
    <param>
      <value>
        <string>yyyy</string>
      </value>
    </param>
  </params>
</methodCall>

retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer  *http steinar.bang.priv.no:80*>)
http -> Calling after change function `url-http-wait-for-headers-change-function' for `#<process steinar.bang.priv.no>'
http -> url-http-wait-for-headers-change-function ( *http steinar.bang.priv.no:80*)
http -> Saw end of headers... ( *http steinar.bang.priv.no:80*)
http -> url-http-parse-response called in ( *http steinar.bang.priv.no:80*)
http -> Got a content-length, being smart about document end.
http -> Calling initial content-length for extra data at end of headers
http -> Marking connection as free: steinar.bang.priv.no:80 #<process steinar.bang.priv.no>
http -> url-http-parse-headers called in ( *http steinar.bang.priv.no:80*)
http -> url-http-parse-response called in ( *http steinar.bang.priv.no:80*)
http -> Parsed HTTP headers: class=3 status=301
http -> Contacting host: steinar.bang.priv.no:443
http -> Marking connection as busy: steinar.bang.priv.no:443 #<process steinar.bang.priv.no>
http -> Request is: 
POST /xmlrpc.php HTTP/1.1
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: steinar.bang.priv.no
Accept-encoding: gzip
Accept-charset: utf-8;q=1, iso-8859-1;q=0.5
Accept: */*
User-Agent: xml-rpc.el/1.6.12 URL/Emacs Emacs/26.3 (Windows-NT; 32bit; i686-w64-mingw32)
Connection: close
Content-Type: text/xml; charset=utf-8
Content-length: 402

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>metaWeblog.getCategories</methodName>
  <params>
    <param>
      <value>
        <string>1</string>
      </value>
    </param>
    <param>
      <value>
        <string>xxxx</string>
      </value>
    </param>
    <param>
      <value>
        <string>yyyy</string>
      </value>
    </param>
  </params>
</methodCall>

http -> Finished parsing HTTP headers: nil
http -> Spinning waiting for headers...
retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer  *http steinar.bang.priv.no:80*>)
retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer  *http steinar.bang.priv.no:443*-149755>)
http -> Calling after change function `url-http-wait-for-headers-change-function' for `#<process steinar.bang.priv.no>'
http -> url-http-wait-for-headers-change-function ( *http steinar.bang.priv.no:443*-149755)
http -> Saw end of headers... ( *http steinar.bang.priv.no:443*-149755)
http -> url-http-parse-response called in ( *http steinar.bang.priv.no:443*-149755)
http -> Saw chunked encoding.
http -> Calling initial chunked-encoding for extra data at end of headers
http -> Reading chunk 0 (435 653 218)
http -> Saw start of chunk 1 (length=206, start=436
http -> Reading chunk 1 (435 653 218)
http -> Got to the end of chunk #1!
http -> Saw start of chunk 2 (length=0, start=642
http -> Saw end of stream chunk!
http -> Removing terminator of last chunk
http -> Marking connection as free: steinar.bang.priv.no:443 #<process steinar.bang.priv.no>
http -> url-http-parse-headers called in ( *http steinar.bang.priv.no:443*-149755)
http -> url-http-parse-response called in ( *http steinar.bang.priv.no:443*-149755)
http -> Parsed HTTP headers: class=4 status=403
http -> Finished parsing HTTP headers: t
http -> Marking connection as free: steinar.bang.priv.no:443 #<process steinar.bang.priv.no>
http -> Activating callback in buffer ( *http steinar.bang.priv.no:443*-149755): #[128 "\302\303\304p#\210\300\305\240\210\301p\240\207" [(nil) (#<buffer  *http steinar.bang.priv.no:443*-149755>) url-debug retrieval "Synchronous fetching done (%S)" t] 5 "

(fn &rest IGNORED)"] ((:error (error http 403) :redirect "https://steinar.bang.priv.no/xmlrpc.php" :peer (:certificate (:version 3 :serial-number "03:7a:6b:d2:53:29:ae:94:20:b9:51:fd:97:ac:c3:3a:9c:a4" :issuer "C=US,O=Let's Encrypt,CN=R3" :valid-from "2021-06-08" :valid-to "2021-09-06" :subject "CN=tls.automattic.com" :public-key-algorithm "RSA" :certificate-security-level "Medium" :signature-algorithm "RSA-SHA256" :public-key-id "sha1:65:4f:af:0f:0f:3b:34:c0:e8:bc:73:5e:4d:74:94:0b:ba:4c:75:d5" :certificate-id "sha1:09:3c:11:0d:9d:8f:30:cd:7d:6b:50:e3:7b:2b:6b:d7:6e:7e:61:1c") :key-exchange "ECDHE-RSA" :protocol "TLS1.2" :cipher "CHACHA20-POLY1305" :mac "AEAD")))
retrieval -> Synchronous fetching done (#<buffer  *http steinar.bang.priv.no:443*-149755>)
http -> Spinning waiting for headers...

I opened #316 to track my issue since it is similar but not the same and this issue is closed.