Here is the steps to reproduce this issue:

Emacs version: 26.0.50 (from source code repo master branch)
Org-mode version: 9.0.8 (from source code repo master branch)

Here is the example link:
IRC: [[irc://irc.freenode.net/#nextcloud][#nextcloud]] on Freenode

I use Edebug to debug on function `org-irc-visit-erc`:

- [-] check out source code
  - [X] org-open-at-point(nil)
  - [X] org-irc-visit("//irc.freenode.net/#nextcloud")
  - [ ] org-irc-visit-erc((("irc.freenode.net") "#nextcloud"))
    - [ ] (port (or (string-to-number (cadr (pop link))) erc-default-port))
      - [ ] (string-to-number (cadr (pop link)))
        - [ ] (cadr (pop link)) -> (cadr ("irc.freenode.net")) -> nil

          #+BEGIN_SRC emacs-lisp
          (setq temp-link '(("irc.freenode.net") ("#clojure")))

          (pop temp-link)
          (cadr (pop temp-link))
          #+END_SRC

        - [ ] (string-to-number nil)

You can see what's wrong.

[stardiviner]           <Hack this world!>      GPG key ID: 47C32433
IRC(freeenode): stardiviner                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/