Forum

Results 1 to 7 of 7
  1. #1
    Join Date
    November 2013
    Posts
    6

    Server Query Client Nickname is already in use error

    Hi, I've just updated my Teamspeak 3 server to version 3.7.0

    I've noticed what I think may be a bug, in this latest version.

    For context I've been using the following Teamspeak 3 NodeJS Bot - Steam-Ts. Which I'm not the Developer of. This bot allows us to verify (link) a Teamspeak User with their Steam Account, in order for them to be added to a Verified Group which allows us to reduce trolls, etc.

    Problem:

    On updating to version 3.7.0 I could no longer launch this bot, the bot uses the older telnet connection to Teamspeak's server query. On connecting to the server it assigns itself a set user name, in our case: "Steam-Verify-Bot".

    However, when I try start this bot now, I get the following error:
    Code:
    id: 513, msg: 'nickname is already in use'
    Name:  1FRp0xM.png
Views: 197
Size:  59.5 KB

    As the only change which has been made since receiving this error was the Server update to v3.7.0, I'm guessing this may be a bug with this version, as the nickname is certainly not in use when the Bot is not connected.

    Work Around:

    My only method to solve this is to get the bot to randomise its name on connection, e.g. "Steam-Verify-Bot123" or "Steam-Verify-Bot451", etc. As the bot does occasional disconnect, crash, etc. On reconnect it always states that the last used nickname is 'still' in use, and only assigning the bot a completely new nickname allows it to connect.

    As per the Change-log's for v3.7.0:
    Code:
    Added: Restricted the amount of possible ServerQuery connections to five per IP.
           Whitelisted IPs ignore this limit, and the limit can be changed using
           `instanceedit serverinstance_serverquery_max_connections_per_ip=<limit>`
           in the ServerQuery.
    I've double checked this and this IP (127.0.0.1) the bot runs on the same server as the Teamspeak 3 server. The IP is added to the whitelist and only has one other bot, i.e. 2 bots on the same IP.

    Hoping I could get any assistance, or if anyone else is noticing this error?
    Last edited by FugiTive Legacy; March 26th, 2019 at 06:55 PM. Reason: Grammar

  2. #2
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,319
    We cannot help you if you only post "I have a script that fails with error 513." Please post an exact traffic capture.

  3. #3
    Join Date
    November 2013
    Posts
    6

    Lightbulb Temporary Solution

    For now I've solved this by the following "hack-code" by changing the connection code.

    Code:
    function (teamspeakClient, callback) {
                console.log("Using virtual server " + config.q_vserverid + " now.");
                var rnum = Math.floor(Math.random() * Math.floor(1000));
                teamspeakClient.send("clientupdate", {client_nickname: "Steam-Bot"+rnum}, function (err) {
                    if (typeof err !== "undefined") {
                        callback(err);
                    } else {
                        console.log("Changed query client name.");
                        callback(null, teamspeakClient);
                    }
                })
            }
    This avoids the error by effectively giving the bot a unique nickname every-time it connects. But it's a rather inelegant solution, and I'm not exactly sure why its required in the first place.

    Only thing I see in the Teamspeak 3 Logs, Prior to changing the bot to have a random Nickname:
    Code:
    2019-03-26 20:26:37.045536|INFO    |VirtualServer |2  |query client connected 'Steam-Bot'(id:565) from 82.***.***.***:54266
    2019-03-26 20:26:37.437553|INFO    |VirtualServerBase|2  |query client disconnected 'Steam-Bot'(id:565) reason 'reasonmsg=connection lost'
    Last edited by FugiTive Legacy; March 26th, 2019 at 08:29 PM. Reason: TS server logs

  4. #4
    Join Date
    November 2013
    Posts
    6
    Quote Originally Posted by numma_cway View Post
    We cannot help you if you only post "I have a script that fails with error 513." Please post an exact traffic capture.
    Ok, well this may be more down to the specific Teamspeak 3 NodeJS Library which has been implemented in this bot. So will post an issue on their GitHub page, for their dev to look into.

    Not sure exactly how to provide traffic capture unfortunately and will that show anything more than this above error which is the RAW telnet error response from the Teamspeak 3 server:
    Code:
    id: 513, msg: 'nickname is already in use'
    - This is not generated by the Bot or the NodeJS library and the Teamspeak 3 logs only show a connection from IP followed by an immediate disconnection. Nor does any other user on the server have this nickname (hence thought it seems like a bug), as why would Teamspeak Query produce an error of duplicate nickname when there is no other user or server-query user who has that name and this only occurred after the 3.7.0 update.

    -- FIXED & CLOSED
    Last edited by FugiTive Legacy; March 27th, 2019 at 02:26 AM. Reason: Details

  5. #5
    Join Date
    November 2014
    Location
    Ciudad Real, Spain
    Posts
    25
    My Python bot (not nodeJS based) found the same issue. It's quite easy to understand what happens.
    ServerQueries used to have no nickname so when you log in, it logged as "xxx from 0.0.0.0" and then you changed its name. However now serverqueries REMEMBER the last name used. So if you connected as BOT last time, when it connects as "xxx from 0.0.0.0" it's already named BOT automatically and if you try to set its nickname (BOT) it's of course impossible because the name is already in use... by itself!

    It's very easy to code on any bot, just make a check:

    Code:
    if bot.name != "my_desired name": 
       change_name("my_desired_name")

  6. #6
    Join Date
    November 2013
    Posts
    6
    Yes, it appears that's whats happening. I've made some more updates to my own Fork of Steam-TS, which avoids the use of 'randomising' the bot's nickname on each connect.

  7. #7
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,319
    Quote Originally Posted by Saelyth View Post
    My Python bot (not nodeJS based) found the same issue. It's quite easy to understand what happens.
    ServerQueries used to have no nickname so when you log in, it logged as "xxx from 0.0.0.0" and then you changed its name. However now serverqueries REMEMBER the last name used. So if you connected as BOT last time, when it connects as "xxx from 0.0.0.0" it's already named BOT automatically and if you try to set its nickname (BOT) it's of course impossible because the name is already in use... by itself!

    It's very easy to code on any bot, just make a check:

    Code:
    if bot.name != "my_desired name": 
       change_name("my_desired_name")
    Nicely explained.

    As another hint, clientupdate has basically been deprecated for renaming query clients in 3.4.0 (August/September 2018). People are supposed to use use instead.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 0
    Last Post: August 9th, 2017, 02:34 PM
  2. [Not possible] Query Max Client ERROR
    By dangerlord63 in forum Server Support
    Replies: 2
    Last Post: September 23rd, 2016, 02:28 PM
  3. [Resolved] How do i change the nickname of a server query?
    By tom_deluxe in forum Server Support
    Replies: 11
    Last Post: January 5th, 2016, 10:10 PM
  4. [Not possible] Server Admin error on Client connect with Query Group
    By TandelK in forum Server Support
    Replies: 1
    Last Post: September 20th, 2015, 02:49 PM
  5. [Resolved] Rename Query Nickname (Username + IP)
    By jamesonp in forum General Questions
    Replies: 4
    Last Post: August 17th, 2014, 12:19 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •