[Bug] tailscale on ios cannot connect to the postgresql server

Is this a support request?

[X] This is not a support request

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
After I switched my headscale's database from sqlite to postgresql, I used my iPhone to reconnect, and then he prompted the following problem and could not connect correctly, which did not appear on sqlite's headscale.

Expected Behavior
Can connect to the server normally
Steps To Reproduce
install headscale and postgresql in ubuntu22, configure the configuration file and start it, then use tailscale of iPhone to connect to the headscale server
Environment
- OS: ubuntu 22.04
- Headscale version: v0.23.0-beta1
- Tailscale version: v1.70.0

Runtime environment

[X] Headscale is behind a (reverse) proxy
[ ] Headscale runs in a container

Anything else?
No response

which Headscale version are you running? I've just migrated SQLite to Postgres with a few hiccups on DB side, but solvable by running a few SQL commands.
Can you outline a few more details as listed below?

Outline migration steps/tools used to migrate SQLite to Postgres and what versions are they running on?
Show us the current SQL Database Schema. There are a few incompatible fields between SQLite and Postgres
Run headscale with DEBUG Log Level and show us the logs
Which Reverse Proxy are you running and the configurations are you using

I'm glad you can reply to me, I will provide you with more information next
First of all, I didn't migrate from SQLite to Postgres. I directly created an empty Postgres and rejoined it using the tailscale client. I wanted to test Postgres first, so I didn't have time to migrate my SQLite yet.
I created two new servers to reproduce the problem. What follows is a description based on the new environment.
Next I will introduce my environment below
For server side

System: ubuntu 22.04 LTS
headscale: v0.23.0-beta1
Postgres : 14

For client
Client 1:

System: ios 17.5.1
tailscale: v1.70.0

Client 2:

System: ubuntu 22.04 LTS
tailscale: v1.70.0

The following is my headscale config file
---
# headscale will look for a configuration file named `config.yaml` (or `config.json`) in the following order:
#
# - `/etc/headscale`
# - `~/.headscale`
# - current working directory

# The url clients will connect to.
# Typically this will be a domain like:
#
# https://myheadscale.example.com:443
#
server_url: http://<IP_ADDRESS>:8080

# Address to listen to / bind to on the server
#
# For production:
# listen_addr: <IP_ADDRESS>:8080
listen_addr: <IP_ADDRESS>:8080

# Address to listen to /metrics, you may want
# to keep this endpoint private to your internal
# network
#
metrics_listen_addr: <IP_ADDRESS>:9090

# Address to listen for gRPC.
# gRPC is used for controlling a headscale server
# remotely with the CLI
# Note: Remote access _only_ works if you have
# valid certificates.
#
# For production:
# grpc_listen_addr: <IP_ADDRESS>:50443
grpc_listen_addr: <IP_ADDRESS>:50443

# Allow the gRPC admin interface to run in INSECURE
# mode. This is not recommended as the traffic will
# be unencrypted. Only enable if you know what you
# are doing.
grpc_allow_insecure: false

# The Noise section includes specific configuration for the
# TS2021 Noise protocol
noise:
  # The Noise private key is used to encrypt the
  # traffic between headscale and Tailscale clients when
  # using the new Noise-based protocol.
  private_key_path: /var/lib/headscale/noise_private.key

# List of IP prefixes to allocate tailaddresses from.
# Each prefix consists of either an IPv4 or IPv6 address,
# and the associated prefix length, delimited by a slash.
# It must be within IP ranges supported by the Tailscale
# client - i.e., subnets of <IP_ADDRESS>/10 and fd7a:115c:a1e0::/48.
# See below:
# IPv6: https://github.com/tailscale/tailscale/blob/22ebb25e833264f58d7c3f534a8b166894a89536/net/tsaddr/tsaddr.go#LL81C52-L81C71
# IPv4: https://github.com/tailscale/tailscale/blob/22ebb25e833264f58d7c3f534a8b166894a89536/net/tsaddr/tsaddr.go#L33
# Any other range is NOT supported, and it will cause unexpected issues.
prefixes:
  v6: fd7a:115c:a1e0::/48
  v4: <IP_ADDRESS>/10

  # Strategy used for allocation of IPs to nodes, available options:
  # - sequential (default): assigns the next free IP from the previous given IP.
  # - random: assigns the next free IP from a pseudo-random IP generator (crypto/rand).
  allocation: sequential

# DERP is a relay system that Tailscale uses when a direct
# connection cannot be established.
# https://tailscale.com/blog/how-tailscale-works/#encrypted-tcp-relays-derp
#
# headscale needs a list of DERP servers that can be presented
# to the clients.
derp:
  server:
    # If enabled, runs the embedded DERP server and merges it into the rest of the DERP config
    # The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place
    enabled: false

    # Region ID to use for the embedded DERP server.
    # The local DERP prevails if the region ID collides with other region ID coming from
    # the regular DERP config.
    region_id: 999

    # Region code and name are displayed in the Tailscale UI to identify a DERP region
    region_code: "headscale"
    region_name: "Headscale Embedded DERP"

    # Listens over UDP at the configured address for STUN connections - to help with NAT traversal.
    # When the embedded DERP server is enabled stun_listen_addr MUST be defined.
    #
    # For more details on how this works, check this great article: https://tailscale.com/blog/how-tailscale-works/
    stun_listen_addr: "<IP_ADDRESS>:3478"

    # Private key used to encrypt the traffic between headscale DERP
    # and Tailscale clients.
    # The private key file will be autogenerated if it's missing.
    #
    private_key_path: /var/lib/headscale/derp_server_private.key

    # This flag can be used, so the DERP map entry for the embedded DERP server is not written automatically,
    # it enables the creation of your very own DERP map entry using a locally available file with the parameter DERP.paths
    # If you enable the DERP server and set this to false, it is required to add the DERP server to the DERP map using DERP.paths
    automatically_add_embedded_derp_region: true

    # For better connection stability (especially when using an Exit-Node and DNS is not working),
    # it is possible to optionally add the public IPv4 and IPv6 address to the Derp-Map using:
    ipv4: <IP_ADDRESS>
    ipv6: 2001:db8::1

  # List of externally available DERP maps encoded in JSON
  urls:
    - https://controlplane.tailscale.com/derpmap/default

  # Locally available DERP map files encoded in YAML
  #
  # This option is mostly interesting for people hosting
  # their own DERP servers:
  # https://tailscale.com/kb/1118/custom-derp-servers/
  #
  # paths:
  #   - /etc/headscale/derp-example.yaml
  paths: []

  # If enabled, a worker will be set up to periodically
  # refresh the given sources and update the derpmap
  # will be set up.
  auto_update_enabled: true

  # How often should we check for DERP updates?
  update_frequency: 24h

# Disables the automatic check for headscale updates on startup
disable_check_updates: false

# Time before an inactive ephemeral node is deleted?
ephemeral_node_inactivity_timeout: 30m

database:
  type: postgres

  # # SQLite config
  # sqlite:
  #   path: /var/lib/headscale/db.sqlite

  #   # Enable WAL mode for SQLite. This is recommended for production environments.
  #   # https://www.sqlite.org/wal.html
  #   write_ahead_log: true

  # Postgres config
  postgres:
    # If using a Unix socket to connect to Postgres, set the socket path in the 'host' field and leave 'port' blank.
    host: localhost
    port: 5432
    name: headscale
    user: foo
    pass: bar
    max_open_conns: 10
    max_idle_conns: 10
    conn_max_idle_time_secs: 3600

    # If other 'sslmode' is required instead of 'require(true)' and 'disabled(false)', set the 'sslmode' you need
    # in the 'ssl' field. Refers to https://www.postgresql.org/docs/current/libpq-ssl.html Table 34.1.
    ssl: false

### TLS configuration
#
## Let's encrypt / ACME
#
# headscale supports automatically requesting and setting up
# TLS for a domain with Let's Encrypt.
#
# URL to ACME directory
acme_url: https://acme-v02.api.letsencrypt.org/directory

# Email to register with ACME provider
acme_email: ""

# Domain name to request a TLS certificate for:
tls_letsencrypt_hostname: ""

# Path to store certificates and metadata needed by
# letsencrypt
# For production:
tls_letsencrypt_cache_dir: /var/lib/headscale/cache

# Type of ACME challenge to use, currently supported types:
# HTTP-01 or TLS-ALPN-01
# See [docs/tls.md](docs/tls.md) for more information
tls_letsencrypt_challenge_type: HTTP-01
# When HTTP-01 challenge is chosen, letsencrypt must set up a
# verification endpoint, and it will be listening on:
# :http = port 80
tls_letsencrypt_listen: ":http"

## Use already defined certificates:
tls_cert_path: ""
tls_key_path: ""

log:
  # Output formatting for logs: text or json
  format: text
  level: debug

## Policy
# headscale supports Tailscale's ACL policies.
# Please have a look to their KB to better
# understand the concepts: https://tailscale.com/kb/1018/acls/
policy:
  # The mode can be "file" or "database" that defines
  # where the ACL policies are stored and read from.
  mode: file
  # If the mode is set to "file", the
  # path to a file containing ACL policies.
  # The file can be in YAML or HuJSON format.
  path: ""

## DNS
#
# headscale supports Tailscale's DNS configuration and MagicDNS.
# Please have a look to their KB to better understand the concepts:
#
# - https://tailscale.com/kb/1054/dns/
# - https://tailscale.com/kb/1081/magicdns/
# - https://tailscale.com/blog/2021-09-private-dns-with-magicdns/
#
dns_config:
  # Whether to prefer using Headscale provided DNS or use local.
  override_local_dns: true

  # List of DNS servers to expose to clients.
  nameservers:
    - <IP_ADDRESS>

  # NextDNS (see https://tailscale.com/kb/1218/nextdns/).
  # "abc123" is example NextDNS ID, replace with yours.
  #
  # With metadata sharing:
  # nameservers:
  #   - https://dns.nextdns.io/abc123
  #
  # Without metadata sharing:
  # nameservers:
  #   - 2a07:a8c0::ab:c123
  #   - 2a07:a8c1::ab:c123

  # Split DNS (see https://tailscale.com/kb/1054/dns/),
  # list of search domains and the DNS to query for each one.
  #
  # restricted_nameservers:
  #   foo.bar.com:
  #     - <IP_ADDRESS>
  #   darp.headscale.net:
  #     - <IP_ADDRESS>
  #     - <IP_ADDRESS>

  # Search domains to inject.
  domains: []

  # Extra DNS records
  # so far only A-records are supported (on the tailscale side)
  # See https://github.com/juanfont/headscale/blob/main/docs/dns-records.md#Limitations
  # extra_records:
  #   - name: "grafana.myvpn.example.com"
  #     type: "A"
  #     value: "<IP_ADDRESS>"
  #
  #   # you can also put it in one line
  #   - { name: "prometheus.myvpn.example.com", type: "A", value: "<IP_ADDRESS>" }

  # Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
  # Only works if there is at least a nameserver defined.
  magic_dns: true

  # DEPRECATED
  # Use the username as part of the DNS name for nodes, with this option enabled:
  # node1.username.example.com
  # while when this is disabled:
  # node1.example.com
  # This is a legacy option as Headscale has have this wrongly implemented
  # while in upstream Tailscale, the username is not included.
  use_username_in_magic_dns: false

  # Defines the base domain to create the hostnames for MagicDNS.
  # `base_domain` must be a FQDNs, without the trailing dot.
  # The FQDN of the hosts will be
  # `hostname.user.base_domain` (e.g., _myhost.myuser.example.com_).
  base_domain: example.com

# Unix socket used for the CLI to connect without authentication
# Note: for production you will want to set this to something like:
unix_socket: /var/run/headscale/headscale.sock
unix_socket_permission: "0770"
#
# headscale supports experimental OpenID connect support,
# it is still being tested and might have some bugs, please
# help us test it.
# OpenID Connect
# oidc:
#   only_start_if_oidc_is_available: true
#   issuer: "https://your-oidc.issuer.com/path"
#   client_id: "your-oidc-client-id"
#   client_secret: "your-oidc-client-secret"
#   # Alternatively, set `client_secret_path` to read the secret from the file.
#   # It resolves environment variables, making integration to systemd's
#   # `LoadCredential` straightforward:
#   client_secret_path: "${CREDENTIALS_DIRECTORY}/oidc_client_secret"
#   # client_secret and client_secret_path are mutually exclusive.
#
#   # The amount of time from a node is authenticated with OpenID until it
#   # expires and needs to reauthenticate.
#   # Setting the value to "0" will mean no expiry.
#   expiry: 180d
#
#   # Use the expiry from the token received from OpenID when the user logged
#   # in, this will typically lead to frequent need to reauthenticate and should
#   # only been enabled if you know what you are doing.
#   # Note: enabling this will cause `oidc.expiry` to be ignored.
#   use_expiry_from_token: false
#
#   # Customize the scopes used in the OIDC flow, defaults to "openid", "profile" and "email" and add custom query
#   # parameters to the Authorize Endpoint request. Scopes default to "openid", "profile" and "email".
#
#   scope: ["openid", "profile", "email", "custom"]
#   extra_params:
#     domain_hint: example.com
#
#   # List allowed principal domains and/or users. If an authenticated user's domain is not in this list, the
#   # authentication request will be rejected.
#
#   allowed_domains:
#     - example.com
#   # Note: Groups from keycloak have a leading '/'
#   allowed_groups:
#     - /headscale
#   allowed_users:
#     -<EMAIL_ADDRESS>#
#   # If `strip_email_domain` is set to `true`, the domain part of the username email address will be removed.
#   # This will transform<EMAIL_ADDRESS>to the user `first-name.last-name`
#   # If `strip_email_domain` is set to `false` the domain part will NOT be removed resulting to the following
#   user: `first-name.last-name.example.com`
#
#   strip_email_domain: true

# Logtail configuration
# Logtail is Tailscales logging and auditing infrastructure, it allows the control panel
# to instruct tailscale nodes to log their activity to a remote server.
logtail:
  # Enable logtail for this headscales clients.
  # As there is currently no support for overriding the log server in headscale, this is
  # disabled by default. Enabling this will make your clients send logs to Tailscale Inc.
  enabled: false

# Enabling this option makes devices prefer a random port for WireGuard traffic over the
# default static port 41641. This option is intended as a workaround for some buggy
# firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information.
randomize_client_port: true

The following is my debug log after starting the headscale server
root@iZbp1db1jr2xfl77stpy0xZ:~# headscale serve
2024-07-28T13:48:45+08:00 INF Opening database database=postgres path="host=localhost dbname=headscale user=foo"
2024-07-28T13:48:46+08:00 DBG Loading DERPMap from path func=GetDERPMap url=https://controlplane.tailscale.com/derpmap/default
2024-07-28T13:48:46+08:00 INF Setting up a DERPMap update worker frequency=86400000
2024-07-28T13:48:46+08:00 INF listening and serving HTTP on: <IP_ADDRESS>:8080
2024-07-28T13:48:46+08:00 INF listening and serving debug and metrics on: <IP_ADDRESS>:9090
2024-07-28T13:55:28+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:55:28+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Node not found in database, creating new expiry=-62135596800 followup= machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:28+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup= machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:29+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:55:34+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:34+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:55:39+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:39+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:55:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:44+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:55:49+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:50+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:55:55+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:55:55+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:00+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:56:01+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:06+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:56:06+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:11+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:56:12+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:17+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:56:18+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:22+08:00 DBG Registering node from API/CLI or auth callback expiresAt=<nil> machine_key=[LHXNY] registrationMethod=cli userName=test
2024-07-28T13:56:22+08:00 DBG Registering node machine_key=[LHXNY] node=localhost node_key=[b8IwI] user=test
2024-07-28T13:56:23+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:2c75cd632751c84596e13328e9315867895df95a7299fe6f486583cd0eb65d25 machine_key=[LHXNY] node=localhost node_key=[b8IwI] node_key_old=
2024-07-28T13:56:25+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:25+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=localhost
2024-07-28T13:56:25+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=localhost
2024-07-28T13:56:25+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f7380, chan: 0xc00054bbc0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T13:56:46+08:00 DBG Registering node from API/CLI or auth callback expiresAt=<nil> machine_key=[LHXNY] registrationMethod=cli userName=test
2024-07-28T13:56:52+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f7380, chan: 0xc00054bbc0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T13:56:53+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:53+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=localhost
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=localhost
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f6480, chan: 0xc00054b0e0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f7680, chan: 0xc000104d80 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f6480, chan: 0xc00054b0e0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T13:56:53+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:641 > We have the OldNodeKey in the database. This is a key refresh node=localhost
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:682 > Node key successfully refreshed node=localhost node_key=[02gJr] old_node_key=[b8IwI]
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f7680, chan: 0xc000104d80 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T13:56:53+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f7980, chan: 0xc00009bf20 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:01:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f7980, chan: 0xc00009bf20 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:01:43+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:01:43+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=localhost
2024-07-28T14:01:43+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=localhost
2024-07-28T14:01:43+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f6480, chan: 0xc000bd4960 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:01:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f6480, chan: 0xc000bd4960 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:01:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686300, chan: 0xc00057c6c0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:01:44+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:01:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:641 > We have the OldNodeKey in the database. This is a key refresh node=localhost
2024-07-28T14:01:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:682 > Node key successfully refreshed node=localhost node_key=[J0Y32] old_node_key=[02gJr]
2024-07-28T14:01:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f7380, chan: 0xc000776180 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:01:44+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686300, chan: 0xc00057c6c0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:12:34+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f7380, chan: 0xc000776180 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:12:40+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:12:40+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=localhost
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=localhost
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686600, chan: 0xc000104720 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686600, chan: 0xc000104720 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000002300, chan: 0xc000499260 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:12:40+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:641 > We have the OldNodeKey in the database. This is a key refresh node=localhost
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:682 > Node key successfully refreshed node=localhost node_key=[vVshz] old_node_key=[J0Y32]
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000002480, chan: 0xc0001304e0 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:12:40+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000002300, chan: 0xc000499260 node=localhost node.id=1 omitPeers=false readOnly=false stream=true
2024-07-28T14:25:37+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:25:37+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Node not found in database, creating new expiry=-62135596800 followup= machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:25:37+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup= machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:25:37+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:25:42+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:25:42+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:25:47+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:25:47+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:25:52+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:25:52+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:25:53+08:00 DBG Registering node from API/CLI or auth callback expiresAt=<nil> machine_key=[4eaGW] registrationMethod=cli userName=test
2024-07-28T14:25:53+08:00 DBG Registering node machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] user=test
2024-07-28T14:25:57+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:25:57+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:25:57+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:25:57+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:25:57+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686a80, chan: 0xc000499bc0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:26:44+08:00 DBG Registering node from API/CLI or auth callback expiresAt=<nil> machine_key=[4eaGW] registrationMethod=cli userName=test
2024-07-28T14:26:52+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:26:52+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686a80, chan: 0xc000499bc0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:26:52+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:26:52+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:26:52+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f7b00, chan: 0xc0004b6840 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:26:59+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:26:59+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f7b00, chan: 0xc0004b6840 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:26:59+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:26:59+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:26:59+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686900, chan: 0xc00057d320 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:04+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686900, chan: 0xc00057d320 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:06+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:27:06+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:27:06+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:27:06+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000002300, chan: 0xc000c3d5c0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:06+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:27:06+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000002300, chan: 0xc000c3d5c0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:06+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:27:06+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:27:06+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686300, chan: 0xc000776720 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:31+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:27:31+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686300, chan: 0xc000776720 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:31+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:27:31+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:27:31+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686d80, chan: 0xc00057dbc0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:27:37+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686d80, chan: 0xc00057dbc0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:29:03+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:29:03+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:29:03+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:29:03+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686480, chan: 0xc000bd4de0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:29:42+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:29:42+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc000686480, chan: 0xc000bd4de0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:29:42+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:29:42+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:29:42+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc000686a80, chan: 0xc0004b6ae0 node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024-07-28T14:30:02+08:00 ERR ../home/runner/work/headscale/headscale/hscontrol/poll.go:719 > Could not get machine from db error="record not found" node=iZbp128wzc2zwaz21j6x3rZ node.id=2 omitPeers=false readOnly=false stream=true
2024/07/28 14:30:02 http2: panic serving <IP_ADDRESS>:52916: runtime error: invalid memory address or nil pointer dereference
goroutine 3669 [running]:
golang.org/x/net/http2.(*serverConn).runHandler.func1()
        /home/runner/go/pkg/mod/golang.org/x/net@v0.25.0/http2/server.go:2363 +0x145
panic({0x1cf2040?, 0x337e5a0?})
        /nix/store/3v17dij8rvg7q99009swxg52995r7s22-go-1.22.5/share/go/src/runtime/panic.go:770 +0x132
github.com/juanfont/headscale/hscontrol.(*mapSession).serveLongPoll.func1()
        /home/runner/work/headscale/headscale/hscontrol/poll.go:207 +0x90
github.com/juanfont/headscale/hscontrol.(*mapSession).serveLongPoll(0xc000686a80)
        /home/runner/work/headscale/headscale/hscontrol/poll.go:291 +0x1254
github.com/juanfont/headscale/hscontrol.(*noiseServer).NoisePollNetMapHandler(0xc0006b3a70, {0x2380150, 0xc000121568}, 0xc0000abd40)
        /home/runner/work/headscale/headscale/hscontrol/noise.go:240 +0x365
net/http.HandlerFunc.ServeHTTP(0x7fc66366f108?, {0x2380150?, 0xc000121568?}, 0x69ec60?)
        /nix/store/3v17dij8rvg7q99009swxg52995r7s22-go-1.22.5/share/go/src/net/http/server.go:2171 +0x29
github.com/juanfont/headscale/hscontrol.prometheusMiddleware.func1({0x2380150, 0xc000121568}, 0xc0000abd40)
        /home/runner/work/headscale/headscale/hscontrol/metrics.go:87 +0x143
net/http.HandlerFunc.ServeHTTP(0xc0000abc20?, {0x2380150?, 0xc000121568?}, 0xc0004cc808?)
        /nix/store/3v17dij8rvg7q99009swxg52995r7s22-go-1.22.5/share/go/src/net/http/server.go:2171 +0x29
github.com/gorilla/mux.(*Router).ServeHTTP(0xc0005263c0, {0x2380150, 0xc000121568}, 0xc00055aa20)
        /home/runner/go/pkg/mod/github.com/gorilla/mux@v1.8.1/mux.go:212 +0x1e2
golang.org/x/net/http2.(*serverConn).runHandler(0x44975d?, 0xc000603fd0?, 0xb9a885?, 0xc000c31200?)
        /home/runner/go/pkg/mod/golang.org/x/net@v0.25.0/http2/server.go:2370 +0xbb
created by golang.org/x/net/http2.(*serverConn).scheduleHandler in goroutine 3655
        /home/runner/go/pkg/mod/golang.org/x/net@v0.25.0/http2/server.go:2305 +0x21d
2024-07-28T14:30:02+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:02+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:02+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:03+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:03+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:03+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:04+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:04+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:05+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:06+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:07+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:08+08:00 ERR Failed to fetch node from the database with node key: nodekey:bc7e2f5c26d9a11eb77260650699cf8e633cd29f9b761498e5d9ae1b52e9af6d handler=NoisePollNetMap
2024-07-28T14:30:09+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:30:09+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Node not found in database, creating new expiry=-62135596800 followup= machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:30:09+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup= machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:30:09+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:30:14+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:30:14+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:30:19+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:30:20+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:30:24+08:00 DBG Registering node from API/CLI or auth callback expiresAt=<nil> machine_key=[4eaGW] registrationMethod=cli userName=test
2024-07-28T14:30:24+08:00 DBG Registering node machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] user=test
2024-07-28T14:30:25+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:28 > Successfully sent auth url: http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e expiry=-62135596800 followup=http://<IP_ADDRESS>:8080/register/mkey:e1e68658d665ddaca93e161f01115071bc953345d92cdfdd259baf87862b3f6e machine_key=[4eaGW] node=iZbp128wzc2zwaz21j6x3rZ node_key=[vH4vX] node_key_old=
2024-07-28T14:30:25+08:00 DBG New noise client cap_ver=102 handler=/key
2024-07-28T14:30:25+08:00 DBG ../home/runner/work/headscale/headscale/hscontrol/auth.go:596 > Client is registered and we have the current NodeKey. All clear to /map node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:30:25+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/auth.go:627 > Node successfully authorized node=iZbp128wzc2zwaz21j6x3rZ
2024-07-28T14:30:25+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has connected, mapSession: 0xc0005f7380, chan: 0xc000d50ae0 node=iZbp128wzc2zwaz21j6x3rZ node.id=3 omitPeers=false readOnly=false stream=true
2024-07-28T14:33:16+08:00 INF ../home/runner/work/headscale/headscale/hscontrol/poll.go:699 > node has disconnected, mapSession: 0xc0005f7380, chan: 0xc000d50ae0 node=iZbp128wzc2zwaz21j6x3rZ node.id=3 omitPeers=false readOnly=false stream=true

Here I removed the reverse proxy and used IP to connect directly. The derp server uses the official derp server. It still has the same problem as before, so I infer that this problem has nothing to do with the reverse proxy.

Here I added two new clients. In fact, the two new clients were not fully connected. I exported my Postgres database file.
Here I first list the performance of the two clients
Client 1:
After connecting, the following is displayed

Client 2:
It stays in this interface after connecting.

The following content is the content of the server after I deleted the nodes on the server after the first connection failed on the Linux client.

Next is the sql dump file I exported containing the information of the two clients.
headscale_backup.zip

The server information that appears in the above content is the test server I created. I released it after the test was completed. Now these server IPs no longer belong to me.

Here are the steps I took when creating the database
sudo -u postgres psql
CREATE USER foo WITH PASSWORD 'bar';
CREATE DATABASE headscale;
GRANT ALL PRIVILEGES ON DATABASE headscale TO foo;
\q

I think this is a duplicate of #764

Yes, likely, I will close as duplicate, we can open if not.


[Install issue]: How to run the Chroma server with collections created via PersistentClient

What happened?
Hi,
I'm trying to run chroma in a client-server configuration. I have the server running, but I'd like to be able to use all of the collections I've previously created with PersistentClient instead of recreating them all.  Is it possible for me to query these with the client-server configuration? If so, how can I do that? I can't find anything in the docs.
Also, where does the default server store newly created collections? Is there a better place I should go for questions?
Versions
$ pip3 show chromadb
Name: chromadb
Version: 0.4.7

$ python3 --version
Python 3.11.4

$ cat /etc/*rel*
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm

Relevant log output
No response

@brandonbiggs you can run the server against this not inside docker - for example, we will land this soon which will make it super easy https://github.com/chroma-core/chroma/pull/1032
for time being, if you copy the data into /chroma and then set ENV variables and run uvicorn chromadb.app:app... manually.
https://github.com/chroma-core/chroma/pull/1032/files#diff-a43650cef3ceef09cabaa56762839e49a8a440115910f6366216507237b9a3daR49
Here is the file in question that will help identify which ENV variables to set and how to run it directly.

Thanks Jeff.

Does incresing workers of uvicorn might helpful for chromadb server performance?


[TASK] Backport library to support PHP < 7.2

The PHP code of this library is backported to additionally support both PHP 7.0 and PHP 7.1.
In order to achieve this, const visibility, nullable types and void types were removed and replaced with PHPDoc comments where applicable.

The title of this PR and commits should not be PHP < 7.2, but like ... support PHP 7.0 (since the 1.5 branch does not support any PHP 5 version).


ISSUE: Value should be a string

The screenshot pretty much speaks for itself, I'm not doing anything special here, just checking the boxes and going through the setup and i get this error message.
Screenshots

Enter (none)

Enter (none)

Ok, that worked, thank you :)

How does one enter "(none)" into a drop down field?

It's not a drop down field.

It's not a drop down field.

care to explain what it is then? and more so how to enter text into it?

That's the sensors list, you need the box below it.

So the error is actually for the Amazon Forwarded Email field and not the sensors, that is definitely confusing with the placement.
also, I have an email in there cause I have my Amazon account with email ID<EMAIL_ADDRESS>and it forwards to<EMAIL_ADDRESS>as an example, which is where this integrations connects and I’m still getting the string error.

Technically for Gmail you don't need anything in the forwarders field, you can change it to (none).

I think it’s on the UI side. I have my email in the box but if I edit the config I get the error when saving.  I found if I delete and re-add the last character in the box it saves fine.

im getting same for<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>please advise need help ive ordered from amazon uk got email but no delivery count :(

how do I know if this add-on is getting the information from my iCloud emails?

ok got it showing amazon packages using email forward to gmail from my iCloud now shows count:)  but link still goes to amazon.com :( from card please update to use all uk deliveries only shows ups and us postage.

from card please update to use all uk deliveries only shows ups and us postage

Card issues should be reported to the card repo.

Please try 0.3.29b0 and see if this resolves your issue.


Generate Documentation on CI

This will generate documentation on Travis-CI and push to gh-pages automatically.

Codecov Report

Merging #157 into master will decrease coverage by 0.22%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #157      +/-   ##
==========================================
- Coverage   56.79%   56.57%   -0.23%
==========================================
  Files          44       44
  Lines        3768     3767       -1
==========================================
- Hits         2140     2131       -9
- Misses       1628     1636       +8

Impacted Files
Coverage Δ

src/utils/print.jl
95.34% <0%> (-4.66%)
:arrow_down:

src/parsers/pm_io/psse.jl
44.08% <0%> (-0.81%)
:arrow_down:

src/parsers/pm_io/matpower.jl
49.43% <0%> (-0.68%)
:arrow_down:

src/utils/print_timearray.jl
77.14% <0%> (-0.33%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d52e90b...cb37e9c. Read the comment docs.

Okay, I'll merge this when tests pass.


The Overlayed Layer Doesn't Close

Microsoft PowerToys version
v0.62.0
Running as admin

[X] Yes

Area(s) with issue?
TextExtractor
Steps to reproduce
just press win+shift+t to capture text.
✔ Expected Behavior
when I select the region to capture, the overlayed layer should disappear automatically.
❌ Actual Behavior
sometime when I select the region to capture, the overlayed layer doesn't disappear but stays on my monitor. only when i press alt+f4 can it disappears.
Other Software
no

Thank you for your report. Overlay-ed layer disappear only when the text is recognized and copied.
Basically the issue boils down to #20437. Additional comments may be added there. /dup #20437


Remove scaline by self.font_size so that it doesn't happen twice

@TonyCrane, after running your fix to the text height, it looked like text was getting scaled by the font size twice.  This PR fixes things for me, but can you verify that this branch works appropriately for you? It's possible I may misunderstand something about when font_size is used for Text.

I have just tested #1553 , I think that fix is enough. It works perfectly, and there is no need for #1543 .
Now we merged both #1553 and #1543, so it works not good and need this pr to fix it.
But if we only merge #1553, it will work good.

Here is the code I tested for Text:
from manimlib import *

class Test1(Scene):
    def construct(self):
        tex = TexText("TexText")
        text = Text("Text")
        VGroup(tex, text).arrange(RIGHT, aligned_edge=DOWN)
        self.add(tex, text)

class Test2(Scene):
    def construct(self):
        tex = TexText("TexText", font_size=20)
        text = Text("Text", font_size=20)
        VGroup(tex, text).arrange(RIGHT, aligned_edge=DOWN)
        self.add(tex, text)

class Test3(Scene):
    def construct(self):
        text = Text("""
            line1line1line1
            line2line2line2
            line3line3line3
        """)
        text2 = Text("line4").next_to(text, DOWN)
        self.add(text, text2)

class Test4(Scene):
    def construct(self):
        text = Text("a"*100)
        self.add(text)


Add validation error styling and display Address question errors

Description
Lots more to do, but here's a bit of an improvement.
Some other tweaks included:

Add background color from mocks.
Adjust FieldWithLabel styles a bit.
Create FieldWithLabel#setFieldErrors so that input fields all render errors in the same way.
Remove placeholder texts that were identical to the input labels (redundant).

Screenshots
Mocks

Current implementation
New background color and form field styles:

New validation styles and validation errors on address:

Checklist

[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Issue(s)
Fixes #<issue_number>; Fixes #<issue_number>; Fixes #<issue_number>...

I know I have some merge conflicts to fix, but I've got a meeting till 5. I figured it could still be reviewed in the meantime. :)


Add stateful 'span'?

O(n) indexing makes some algorithms hard to express. For instance, let's say that I want to break a string into words, but avoid breaking parenthesized groups: "(a b) c [d e]" becomes ["(a b)", "c", "[d e]"]. At the moment, this doesn't seem to be easy to write without incurring a 2× performance penalty (though I might be mistaken). So, I propose adding a function along these lines:
-- name subject to bikeshedding
statefulSpan :: (a -> Char -> (a, Bool)) -> a -> Text -> (a, Text, Text)

Yes, please. It's easy to implement it in terms of iter, but it's an unsafe. (I have at least one such implementation in my own code, and I'll be happy to replace it with the statefulSpan.) Probably the reverse span (iterating from end to start) will also be useful.


Implement Decipher model in external

CC @ANazaret
Implements Decipher model (https://github.com/azizilab/decipher, https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>6719v1) into external/
For now, it only includes base implementation without many of the downstream workflows from the original implementation.
Includes minor non-breaking changes to the LowLevelPyroTrainingPlan.
Test: was able to approximately reproduce figures from the tutorial (https://github.com/azizilab/decipher/blob/main/examples/1-tutorial.ipynb), some of the v plots for several random seeds below:
Original implementation:

New implementation:

Not sure why the cuda tests are failing on import of the Decipher class. Any ideas? @canergen @ori-kron-wis

@justjhong  I updated the main branch with the updated cuda test file we need now to run on WIS servers and merged this PR with it. Now the tests work.
However, test_decipher is failing. Not sure why, I can only say it is passing in a non-GPU environment, and failing in both single and multi GPU environments. Can it be related to the fact that it is Pyro based?

@ori-kron-wis thanks for your help confirming its a real bug. I will debug this on my local CUDA machine and update the PR accordingly

you are right, it is still not solved. I will have to take another look

@ori-kron-wis Haha these flaky things are never satisfying but thank you for finding the fix! I will add decipher to the docs first before asking you for the final review.
Aside: do you think there should be a simple PR checklist for the standard things for typical contributions? I keep forgetting things (e.g., CHANGELOG, function level documentation, add classes to docs if necessary, add backport label if needed before merge)

@ori-kron-wis once checks pass, this PR should be ready for review and merge 👍

@ori-kron-wis cuda tests failing after merging with main. do you mind taking a look before the pr gets out of date again?

Thanks @ori-kron-wis ! if everything looks can you approve the PR? @canergen

@ori-kron-wis @canergen bump on this PR


bvh to vmd converter

Could you make a converter bvh to vmd?

Take a look here for information and discussion of this subject:
https://github.com/powroupi/blender_mmd_tools/issues/60
The forked version of mmd_tools by powroupi is now much more developed and superior to sugiany's original version of mmd_tools. It can import and export both .vmd and .vpd.

@powroupi is the current developer of mmd_tools.
You can find lots of great bug fixes and additional features in the version of mmd_tools by @powroupi:
https://github.com/powroupi/blender_mmd_tools/archive/dev_test.zip
https://github.com/powroupi/blender_mmd_tools
https://github.com/powroupi/blender_mmd_tools/issues

Can you make some sort of visual tutorial for converting bvh to vmd because i have almost no idea as some of the instrustions is making me confuse like renaming bones but i have no idea where to rename them in blender

I made a tutorial about converting bvh to vmd and various other tutorials, which you can find linked here in the mmd_tools wiki (powroupi fork):
https://github.com/powroupi/blender_mmd_tools/wiki/Links-to-mmd_tools-Tutorials
Sorry, I haven't gotten around to adding images to the BVH to VMD tutorial yet. My mmd_tools_helper add-on can be used to do a mass renaming of bones in Blender.

ok thx but what about the ik rig or even the vertex?

Why is it not working? I mean it seems I follow all of the instructions but when I import it in mmd, it like doesn't do the motion at all unless the renaming is the one I got it wrong?

No, if you download it, you can see the list of supported bone maps.

To correct myself:
The 3DS Max bone map is supported by mmd_tools_helper, so I assume that the mmd_tools_helper bones renamer operator should work with Yost Labs software, such as PrioVR or Yost Labs MoCap Studio (both open source).
https://yostlabs.com/yost-labs-mocap-studio/
"Below is a collection of sample BVH animation exports from the Yost Labs 3-Space Mocap Studio. They are compatible with 3ds Max biped naming scheme.
Capture session from the Quick Start video, updated 25 Nov 2013
Actor throwing a football, updated 25 Nov 2013
Actor catching and throwing a basketball, updated 25 Nov 2013
Actor walking, updated 25 Nov 2013
Actor performing actions with a sword and shield, updated 25 Nov 2013
Actor performing a zombie walk, updated 25 Nov 2013
Actor performing a zombie attack, updated 25 Nov 2013"

Ok. Thanks for letting me know about this.

Why is my character not posing? i meant like it is moving but not the arms and leg are not moving like in the animation.


Test Issue created at Fri, 30 Jul 2021 07:07:58 GMT

Test issue body  Fri, 30 Jul 2021 07:07:58 GMT

Comment on issue at Fri, 30 Jul 2021 07:08:02 GMT


Improving random seeding in TTOpt

Description
This improves the way in which random seeds are handled internally in TTOpt. This leaves the numpy global random seed untouched, which is a better practice for handling reproducibility of random generated numbers.
Please verify that you have completed the following steps

[x] I have self-reviewed my code.
[x] I have included test cases validating introduced feature/fix.
[x] I have updated documentation.

Codecov Report
Patch coverage: 92.30% and project coverage change: -0.04 :warning:

Comparison is base (46cd653) 94.17% compared to head (3a9c1f5) 94.14%.

:exclamation: Current head 3a9c1f5 differs from pull request most recent head 6b7797a. Consider uploading reports for the commit 6b7797a to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #36      +/-   ##
==========================================
- Coverage   94.17%   94.14%   -0.04%
==========================================
  Files          29       29
  Lines        1185     1196      +11
==========================================
+ Hits         1116     1126      +10
- Misses         69       70       +1

Impacted Files
Coverage Δ

...orquestra/opt/optimizers/tensor_train_optimizer.py
97.27% <92.30%> (-0.71%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Good job! But I dont see any tests for this new feature?

@AthenaCaesura it's not new per se. It's just an internal change in the way random numbers are generated. Just to avoid setting a global random seed in numpy. I had to modify the internal working of a small function in ttopt, which is why I included that function there, but it's really more of a "third-party" function


[bug] permissions.assignRole throws an error

I'm trying to assign a role as follows:
const token = (await sdk.getSecurityToken({ symbol: 'RN' }))[0]
const q = await token.permissions.assignRole({symbol: "RN", assign: true, delegateAddress: "0x1B2D2797A56c9eBa12aa821D643aB0dBa66C3772", role: "PermissionsAdministrator"})
await q.run()

But it throws this unhelpful error:
index.js:1375 TypeError: Cannot read property 'length' of undefined
    at t.<anonymous> (index.browser.js:38555)
    at index.browser.js:38448
    at Object.next (index.browser.js:38460)
    at o (index.browser.js:38350)

In stand-by until a reproducible example is supplied (the current one was built from memory and doesn't reproduce the error)

@monitz87 try this:
const { Polymath } = require('@polymathnetwork/sdk');

(async function() {

  const privateKey = 'PRIV_KEY';
  const networkId = 42;
  const symbol = 'SYMBOL'

  const feature = 'Permissions'
  const role = 'ShareholdersAdministrator'
  const delegateAddress = '0xDELEGATE_ADDRESS'

  const networkConfigs = {
    1: {
      polymathRegistryAddress: '0xdfabf3e4793cd30affb47ab6fa4cf4eef26bbc27',
      providerUrl: 'https://mainnet.polymath.network',
      privateKey
    },
    42: {
      polymathRegistryAddress: '0x5b215a7d39ee305ad28da29bf2f0425c6c2a00b3',
      providerUrl: 'https://kovan.polymath.network',
      privateKey
    },
  };
  const config = networkConfigs[networkId];
  const sdk = new Polymath();
  await sdk.connect(config);

  try {
    const token = await sdk.getSecurityToken({symbol});
    const enabled = await token.features.isEnabled({feature})
    if (enabled) {
      console.log('GTM is enabled')
      const q = await token.permissions.assignRole({delegateAddress, role, description: 'test'})
      const ret = await q.run()
    }
  } catch(error) {
    console.error(error);
  }
})();

Can't reproduce it on latest SDK beta.

I'm getting this error again with beta 50, but it might be reproducible with earlier versions. Please see the attached screenshot bellow.
To reproduce:

Go to https://polymathnetwork.github.io/permissions/
Select a token.
Click on 'assign a role'
Fill all fields then click submit.

The transaction in question is here https://github.com/PolymathNetwork/permissions/blob/master/src/App.js#L272

I need a minimal reproducible example with just SDK code. Also, I can't get to that part of the dApp, I get invalid bytes32 string - no null terminator when I select a token.

Well I'm trying to write you a Node.js example but I keep getting ReferenceError: XMLHttpRequest is not defined

@monitz87 I found another clue. The error above occurs when one attempts to assign a role, to a new delegate that hasn't been added before. If I add a delegate using Token Studio or any other method, then attempt to assignRole to them, it works fine.
BTW the code sample above still applies.

Also, I can't get to that part of the dApp, I get invalid bytes32 string - no null terminator when I select a token.

That was probably a 2.x token.

It's working fine for me.
Running the following script:
`import { Polymath, TransactionSpeed, Feature, SecurityTokenRole } from './src';
(async () => {
const polyClient = new Polymath();
await polyClient.connect({
polymathRegistryAddress: '0x7E5A59E2Db8977d288bcf3225d4018f7b373cF8b',
providerUrl: 'http://<IP_ADDRESS>:8545',
privateKey: 'xxx',
speed: TransactionSpeed.Fastest,
});
const mySecurityToken = await polyClient.getSecurityToken({ symbol: 'TEST' });
const isPermEnabled = await mySecurityToken.features.isEnabled({ feature: Feature.Permissions });
console.log('isPermEnabled:', isPermEnabled);
if (!isPermEnabled) {
await (await mySecurityToken.features.enable({ feature: Feature.Permissions })).run();
}
await (await mySecurityToken.permissions.assignRole({
delegateAddress: '0xbfd02b95a0ba36807902d1c31b66edae90ec2151',
role: SecurityTokenRole.ShareholdersAdministrator,
description: 'test',
})).run();
const delegates = await mySecurityToken.permissions.getAllDelegates();
console.log('delegates:', delegates);
})().catch(err => console.log(err));`
The first time it adds the delegate and it assigns the permission smoothly. The second time it runs, it fails due the permission is already assigned.

@VictorVicente do you mind trying that same script on a new token and on Kovan network?

The same script worked on a fresh token on Kovan network. If you try this script, is it showing the same error you described?

I guess I have ghosts 👻


Explain that LXD containers run Docker containers inside

Fixes issue #3612

This change is

:+1: LGTM

No missing articles this time. Awesome. Thanks for review. =)

@techtonik I made some small changes directly. =)

Oh, no. I will never get them. )


Add scrollbar support; fix navigation when multiples slider are used …

I added support to scrollbar option and I also fixed the navigation (prev/next). These buttons were propagated to all swipers of the page.

I'm trying to solve the tests issue, but even without my commit the ember test breaks.
I'm not sure if I'm missing something about this.


Refactor components to functional from start to namespace form3

Remove all that commented-out code please,
and eslint found a couple of unused variables...
/home/runner/work/ansible-hub-ui/ansible-hub-ui/src/components/execution-environment/publish-to-controller-modal.tsx
Error:    41:11  error  'IState' is defined but never used                                   @typescript-eslint/no-unused-vars
Error:   519:47  error  'i' is defined but never used. Allowed unused args must match /^_/u  @typescript-eslint/no-unused-vars


Hope you can add additional judgement to the  tags within the table.

First of all, I really appreciate your effort on developing this project.
However, I have a small request to make and I hope you could take a look.
I have a book with tables that contain <p> tags, and when running the code of this project, some symbols in these <p> tags are also being translated. I am not sure which part of the code can add a logic of "not translating <p> tags in tables". I would greatly appreciate it if you could add such logic to the project or guide me on how to modify the code accordingly.
Here are some examples:

Translated results:

I hope that an optional parameter can be added to disable table translation.

thanks will make a try

https://github.com/yihong0618/bilingual_book_maker/blob/e0aef6f8afda7bbab85d7d3d1930a4110ae1e852/book_maker/loader/epub_loader.py#L137
when using --accumulated_num, the translation of the sup label is excluded. Add an option allow the configuration to look more reasonable

@hleft thanks

You guys replied so fast! Thank you very much for trying to improve this.

This didn't solve why it was close.. I also encountered this problem today and wanted to add an option exclusion tag

sorry for that reopen it now


Delay load backends.

This allows install only needed backends
My idea is provide several rockspect for

websocket-core include only modules for work with messages. This module depends from struct and bit32 libraries.
websocket-sync, websocket-ev, websocket-copas modules that depends from core and from other libraries.
websocket this module for compatability and it just has dependecies from  websocket-sync, websocket-ev, websocket-copas

Also it would be possible provide indepndent backends as separate modules e.g. websocket-lluv

You can check out this rockspecs

Coverage increased (+0.13%) to 90.27% when pulling ffedd2691dee15eb00a3d9710bd08ae53c796d27 on moteus:master into d95081050e078066b76523ae1992d7e781deb868 on lipp:master.


Support =rowspan

This wraps a <span> element around each cell in the following row.
Coded and pushed.

Shipped in v0.6.3.


Portable Install forcing local install, Enhancer options not available in Notion 2.0.18-1, Notion-Enhancer v 0.11.0

BEFORE MAKING A BUG REPORT, PLEASE READ THE
CONTRIBUTING GUIDE.
BUG REPORTS ARE NOT FOR SUPPORT REQUESTS. IF YOU JUST NEED HELP,
ASK IN THE DISCORD SERVER.
BUG REPORTS THAT DO NOT PROPERLY FILL
IN THE TEMPLATE MAY BE IGNORED OR REJECTED.

What is happening?
Portable version of app loads the installer when trying to open the portable program. Installer installs as expected, but there appears to be no option within the notion app window to access the enhancer options. Also, the notion-enhancer system tray icon seems to be missing.
What should be happening?
Portable app should not need to be installed. Some way to intitutivitly access the notion-enhancer options should be accessable from the app window.
Screenshots (if applicable):
Operating system/browser name & version:
Windows 11 (build 22000.376)
notion-enhancer and/or notion-repackaged version:
Notion 2.0.18-1, notion-enhnacer 0.11.0
notion-enhancer configuration (enabled/disabled mods and their settings):
None, currently.

How the portable app installs is out of our control, our executables are generated by electron-builder.
The tray icon is expected to be missing. It is now a mod that can optionally be turned on. See the Basic Usage guide for where to access the menu.
If you read the installation instructions properly, there is a warning at the very top with an extra step for past users of the notion-enhancer. You need to delete the .notion-enhancer folder in your home/user directory.


Fix topic and type name handling

LGTM

Codecov Report

Merging #254 (53df2d3) into main (77c4b22) will decrease coverage by 1.06%.
The diff coverage is 25.58%.

@@            Coverage Diff             @@
##             main     #254      +/-   ##
==========================================
- Coverage   49.44%   48.37%   -1.07%
==========================================
  Files          44       44
  Lines        1711     1728      +17
  Branches      484      498      +14
==========================================
- Hits          846      836      -10
- Misses        642      661      +19
- Partials      223      231       +8

Impacted Files
Coverage Δ

rmw_microxrcedds_c/src/rmw_client.c
45.37% <0.00%> (-4.18%)
:arrow_down:

rmw_microxrcedds_c/src/rmw_microxrcedds_topic.c
43.54% <0.00%> (-10.16%)
:arrow_down:

rmw_microxrcedds_c/src/rmw_service.c
45.00% <0.00%> (-4.13%)
:arrow_down:

rmw_microxrcedds_c/src/utils.c
27.60% <64.70%> (-1.92%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 77c4b22...53df2d3. Read the comment docs.

Thanks, @Acuadros95, let's wait for @gavanderhoorn feedback before merging.

I haven't tested this yet, but I noticed the functions like generate_topic_name(..) now only return a bool.
snprintf(..) can fail in a nr of different ways, so it seems like returning a more fine-grained status/error code from generate_topic_name(..) et al. would make reporting the different failure modes from calling code also easier/possible.
Other places in Micro-ROS are very careful in how they handle and report errors (such as the other parts of the ctor of rmw_client_t, a few lines up), so it would align with that approach.
What do you think?

snprintf will report that chars that should have been written are more than the buffer array, in that case, a false is returned.
And the function will fail here for example https://github.com/micro-ROS/rmw_microxrcedds/pull/254/files#diff-fa1104ae182dc7153d689fedbab8020d187abaafeb7e9a6829346f040060302aR82

I was just wondering whether we'd want to differentiate between 'buffer overrun' and 'other error', which according to snprintf(3) is possible.

Could you propose a user input that can end as "other error" in the internal usage of snprintf(3)?

No, I can't come up with such a situation, but that's not really how I normally judge whether or not to handle return values the documentation tells me are possible :)
As I wrote, I was just curious whether you felt it would be beneficial to be able to distinguish between the different failure modes. More specific error messages have helped me in the past while debugging Micro-ROS issues (mostly in my personal use of the API, but still).
I'm OK with the proposed changes.

Thanks for the quick turnaround btw. 👍


Edits on Lara's code from Aditya for Efficiency and Fixing any Errors

This pull request introduces the following improvements to the lab04.py script:

User-Friendly Output Path: Previously, the script hard-coded the output path for the generated figures, which limited the flexibility for users. I've added a new command line argument --outpath that allows users to specify the directory where they want the figures to be saved. If no path is provided, the script will default to creating a new directory in the current working directory. For this change, I did have to import a new dependency (import argparse) in order to parse the current directory of the user and allow for this functionality to work with the least runtime.

Proper Celsius Symbol Formatting: I identified an issue with the formatting of the Celsius symbol in the plot titles and legends. The original {r"$^\circ$C warming"} syntax was not rendering the symbol correctly. I've updated the code to use the proper {r"$^circ$C"} warming format, ensuring the Celsius symbol is displayed correctly in the generated figures.

These changes improve the overall user experience by providing more flexibility in managing the output files and ensuring the plots are properly formatted.
Motivation:
The goal of these changes is to make the lab04.py script more user-friendly and accessible. By allowing users to specify the output path, they can easily access and incorporate the generated figures into their own workflows or presentations. Additionally, the fix for the Celsius symbol formatting ensures a professional and visually appealing presentation of the plot results.
Testing
I have added docstring at the top of the script on how to run the script along with a defined/undefined OUTPUT path, and if you want to test the change simply follow the docstring and do the following:

Verify the script runs successfully with the default output path
Confirm the script creates the specified output directory when a custom path is provided
Checking that the Celsius symbol is correctly displayed in the plot titles and legends

(Note: All unit tests from the original script continue to pass, and the overall functionality of the script remains intact.)
These improvements enhance the usability and flexibility of the lab04.py script, making it more accessible and user-friendly. I believe these changes will improve the overall experience for anyone running and analyzing the permafrost melting simulations. Please review and consider merging this pull request. Thank you!

Hmmm... the changes don't seem to work on my system! I really like the argparse option, its much cleaner than my previous version, but for some reason it disrupts my unit test and passes it in as an argument.
(base) laratobias-tarsh@Laras-MacBook-Pro-2 lab04 % python lab04.py --outpath /Users/laratobias-tarsh/Documents/fa24/clasp410tobiastarsh/lab04/figures_aditya
testing n_layer_atmos solver
usage: lab04.py [-h] [-v] [-q] [--locals] [--durations N] [-f] [-c] [-b] [-k TESTNAMEPATTERNS] [tests ...]
lab04.py: error: unrecognized arguments: --outpath

This is probably because I was under the impression that we could only submit one script, or I would have put my unit tests in a separate module. I was able to overcome this (almost) by using sys.argv to further parse arguments to the unit tests, but that still causes this error with the main function:

======================================================================
ERROR: /Users/laratobias-tarsh/Documents/fa24/clasp410tobiastarsh/lab04/figures_aditya (unittest.loader._FailedTest./Users/laratobias-tarsh/Documents/fa24/clasp410tobiastarsh/lab04/figures_aditya)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute '/Users/laratobias-tarsh/Documents/fa24/clasp410tobiastarsh/lab04/figures_aditya'

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

That being said, this seems to be resolved when unit tests are placed in a separate script that can be run with
python -m unittest discover (which runs all files following test*.py), which I am satisfied with as I think this is more pythonic and I really thing your argparse addition is great! I have added and pushed the unit test upstream, and ammended this accordingly.
Again, the change to the syntax of the degrees celsius symbol seems to break on mine (see attached figures). I wonder if this is a python version issue or something else? For now, this part of the change will not be merged.
How the addition renders on my system:

How the original renders on my system:

Either way - thank you for the pull request, and particularly the argparse edit - that is super cool and will be merged :)


Longest Palindromic Substring

This is the standard dsa problem and i will be solving it using c++.Kindly assign me this issue under hacktober fest 2024.

Hey.., @Saloni6111 can you assign it to me

This is the standard dsa problem and i will be solving it using c++.Kindly assign me this issue under hacktober fest 2024.

@garvit0908 assigned to you!


Error 53-What I am missing.

Hi Guys,
I keep getting Error 53. I am able to mount the Azure File Share using the same VNet using a P2S connection and no issue. But mounting the blob storage keeps giving me error 53.   I have followed the following steps.

The Storage account is enabled with NFS, the storage account is created after "AllowNSF3" is registered (Get-AzProviderFeature -ProviderNamespace Microsoft.Storage -FeatureName AllowNFSV3 shows registered).
The Storage account is created after NFS3.0 enabled as mentioned in the doc.
The Storage account is configured to work with selected Vnet. I know networking side everything is working because I have both S2S and P2S working on the same Vnet/VNetGateway
Firewall outbound ports(both UDP and TCP) 111, 2048, 2049 are open on a client computer

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: abfc0bd3-6245-82ad-e782-d2464a6ce8df
Version Independent ID: aa79abce-6e1b-15b6-04c1-b7413c4b5f58
Content: Mount Azure Blob storage by using the NFS 3.0 protocol (preview)
Content Source: articles/storage/blobs/network-file-system-protocol-support-how-to.md
Service: storage
Sub-service: blobs
GitHub Login: @normesta
Microsoft Alias: normesta

If you have selected Standard performance you have to choose one of the following regions: Australia East, Korea Central, and South Central US.


Include .g.cs files as generated.

Refit (https://github.com/paulcbetts/refit) uses the ".g.cs" file extension to indicate the file is auto-generated. I know the file name detection was simplified until examples could be shown for each. I hope this is an acceptable example.

Current coverage is 93.37%

Merging #2123 into master will increase coverage by +0.02% as of d11b675

@@            master   #2123   diff @@
======================================
  Files          566     566
  Stmts        35946   36005    +59
  Branches      2315    2321     +6
  Methods
======================================
+ Hit          33557   33618    +61
- Partial        761     762     +1
+ Missed        1628    1625     -3

Review entire Coverage Diff as of d11b675

Powered by Codecov. Updated on successful CI builds.

The change looks good to me and I'm OK with adding this.
This might be obsolete once we merge in the roslyn-1.2 stuff

A similar situation appeared in the past. The solution there was to submit a pull request that updated the code generator to include the proper header in the generated code (GitTools/GitVersion#537), which automatically caused the files to be excluded from analysis in both this project and others which use similar exclusion mechanisms.

For now I'm going to mark this as blocked on #2102. If we merge that pull request prior to releasing version 1.1 Beta 1, then this pull request becomes obsolete as all exclusions handling is performed by Roslyn itself instead of StyleCop Analyzers.

Closing as no longer necessary


docker-compose ver 1.4 failure

cloned repo from git finishes with errors
git clone https://github.com/ciur/papermerge papermerge-proj
Cloning into 'papermerge-proj'...
remote: Enumerating objects: 105, done.
remote: Counting objects: 100% (105/105), done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 15776 (delta 48), reused 65 (delta 26), pack-reused 15671
Receiving objects: 100% (15776/15776), 22.92 MiB | 1.81 MiB/s, done.
Resolving deltas: 100% (10683/10683), done.
Checking connectivity... done.
docker-compose up -d
Creating network "14_default" with the default driver
Creating volume "14_postgres_data" with default driver
Creating volume "14_media_root" with default driver
Creating volume "14_redisdata" with default driver
Building app
Step 1/29 : FROM ubuntu:20.04
20.04: Pulling from library/ubuntu
da7391352a9b: Pull complete
14428a6d4bcd: Pull complete
2c2d948710f2: Pull complete
Digest: sha256:c95a8e48bf88e9849f3e0f723d9f49fa12c5a00cfc6e60d2bc99d87555295e4c
Status: Downloaded newer image for ubuntu:20.04
---> f643c72bc252
Step 2/29 : LABEL maintainer="Eugen Ciur<EMAIL_ADDRESS>---> Running in 5731eca91c8f
Removing intermediate container 5731eca91c8f
---> a71a2a28d4b1
Step 3/29 : ARG DEBIAN_FRONTEND=noninteractive
---> Running in 281d54c223ad
Removing intermediate container 281d54c223ad
---> be733849ea6c
Step 4/29 : RUN apt-get update  && apt-get install -y                     build-essential                     vim                     python3                     python3-pip                     python3-venv                     virtualenv                     poppler-utils                     git                     imagemagick                     pdftk-java                     apache2                     apache2-dev                     locales  && rm -rf /var/lib/apt/lists/*  && pip3 install --upgrade pip
---> Running in 9382b2ba48b5
Err:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Err:2 http://archive.ubuntu.com/ubuntu focal InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Temporary failure resolving 'archive.ubuntu.com'
Reading package lists...
 They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
Package locales is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Unable to locate package build-essential
E: Unable to locate package vim
E: Unable to locate package python3
E: Unable to locate package python3-pip
E: Unable to locate package python3-venv
E: Unable to locate package virtualenv
E: Unable to locate package poppler-utils
E: Unable to locate package git
E: Unable to locate package imagemagick
E: Unable to locate package pdftk-java
E: Unable to locate package apache2
E: Unable to locate package apache2-dev
E: Package 'locales' has no installation candidate
ERROR: Service 'app' failed to build: The command '/bin/sh -c apt-get update  && apt-get install -y                     build-essential                     vim                     python3                     python3-pip                     python3-venv                     virtualenv                     poppler-utils                     git                     imagemagick                     pdftk-java                     apache2                     apache2-dev                     locales  && rm -rf /var/lib/apt/lists/*  && pip3 install --upgrade pip' returned a non-zero code: 100
root@DS:
Info:

OS: synology SRM 6
Papermerge Version 1.4

Hi @Pabl0z, support for synology based docker images is not provided here. Please contact vendor of respective synology based packager.

Hi @Pabl0z, support for synology based docker images is not provided here. Please contact vendor of respective synology based packager.


Trace back fails due to spelling mistake in exceptions.py

snakemake version: 8.8.0
OS: MacOS 13. 6 (M1 pro)
Python version: 3.12.2
pip3 version: 24
Homebrew version: >=4.1.0
Bug
Trace back fails due to spelling error in /opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/exceptions.py.
Logs
Traceback (most recent call last):
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/cli.py", line 1921, in args_to_api
workflow_api = snakemake_api.workflow(
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/api.py", line 141, in workflow
self.setup_logger(mode=workflow_settings.exec_mode)
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/api.py", line 250, in setup_logger
setup_logger(
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/logging.py", line 748, in setup_logger
raise ValueError(
ValueError: Unsupported value provided for quiet mode (either bool, None or list allowed).
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/cli.py", line 2129, in main
success = args_to_api(args, parser)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/cli.py", line 2103, in args_to_api
snakemake_api.print_exception(e)
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/api.py", line 241, in print_exception
print_exception(ex, linemaps)
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/exceptions.py", line 162, in print_exception
logger.error(traceback.format_exeption(ex))
^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'traceback' has no attribute 'format_exeption'. Did you mean: 'format_exception'?
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/bin/snakemake", line 8, in
sys.exit(main())
^^^^^^
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/cli.py", line 2131, in main
print_exception(e)
File "/opt/homebrew/Cellar/snakemake/8.8.0/libexec/lib/python3.12/site-packages/snakemake/exceptions.py", line 162, in print_exception
logger.error(traceback.format_exeption(ex))
^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'traceback' has no attribute 'format_exeption'. Did you mean: 'format_exception'

This can be closed, it was fixed in ee9639385cb2c9cec425800088faee4e4bf77c9a


Caching or sampling of schema queries in QueryTranslator

Firstly, thanks a lot for the neodash tool in general, and especially for the new query translator feature. We have been testing this for several databases and made very good experience with it.
Request Summary
Using the query translator feature on a very large graph database seems to not work very well. I am currently working with a database of 100M nodes and 200M relationships. As I understand from the code, the prompt that is sent to the LLM provider contains several calls of apoc.meta.data() (here). In our case, each of these calls would take almost a minute in the neo4j Browser. When using the query translator in neodash for this database, the following error pops up:

Error when translating the naturual language query: Couldn't generate schema due to: The transaction has been terminated. Retry your operation in a new transaction, and you should see a succesful result. The transaction has not completed within the timeout specified as its start by the client. You may want to retry with a longer timeout.

Describe the solution you'd like
I was thinking of:

A setting to use the sample keyword for the apoc.meta.data() calls. In my tests, this can reduce drastically the query time of apoc.meta.data()
Some sort of caching of the apoc.meta.data() query results in the neodash frontend

Describe alternatives you've considered
I tried to cache the apoc.meta.data() query result in the neo4j Browser, but without success yet. The only other alternative for me at the moment that I see is to construct the prompt with sampling on my own.
Thanks a lot for your help, and please let me know if any further information needed.
Nicolas

Hi @l47y ,we added schema sampling to the new version (2.4.0). With respect of caching the data model, we are still working on it. We hope you will love it and please give us a feedback on the speed of the schema sampling.


Incorrect function parameter type reference in certain cases

[x] I have checked issues with bug label and found no duplicates

Steps to reproduce:

Copy the attached test.d.ts (from typedoc-reference.zip) to a new folder
Run

typedoc --json res.json --ignoreCompilerErrors --includeDeclarations --excludePrivate --target ES5 .

Open res.json
Find the setMasterFilter method (id=157025)
Find the "values" parameter (id=157027) of the setMasterFilter method
See the "values" parameter type id.

Current Behavior: id is 157021 that refers to the MasterFilterValues property of the ItemState class

Expected Behavior: id is 157022 and refers to the MasterFilterValues Type alias.

Environment

Typedoc version: 0.15.0
Node.js version: v10.16.3
OS: Windows 10

This happens because the TypeScript compiler interns (some) identical types for performance reasons. https://github.com/microsoft/TypeScript/issues/28197
Fixing this might prove... difficult. PR welcome if you'd like to give it a shot. I probably won't get to it for at least a couple of months.

I have no idea why I thought this was a problem with interning.... this is a complex enough type that it shouldn't be happening here. Interning only really happens with type Alias = <some primitive>.
This specific case appears to have been fixed by 0.20 (currently typedoc@beta). Hovering over the link shows that it targets the correct reflection. This also revealed a bug with 0.20's converter, it was producing multiple identical reflections for the namespace, so thanks for that!


Organize model file into single folder

I think the better way to organizing your modle file is move all of it into single folder, i.e src/Models

Looks a good idea.. thanks :clinking_glasses:

Already done #2


add_header is being overwritten by location blocks

For what you've written for caching plugins, the / location would be evaluated first.  However, given that you have locations for assets and .php the LAST location to be executed will write the headers.  So , for example in example.com.conf, if you include any of the caching plugins you'll always see the header X-CACHE MISS.  Even though the locations are being executed the last location to be executed will add the headers.
Per http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header

There could be several add_header directives. These directives are inherited from the previous level if and only if there are no add_header directives defined on the current level.

Hi,
Thanks for creating a new issue.
Please forgive my ignorance. I could not understand what you are trying to say.

for example in example.com.conf, if you include any of the caching plugins you'll always see the header X-CACHE MISS.

No. I use example.com.conf too with WP Super Cache as the caching plugin on my site https://www.tinywp.in . You would see "x-cache" "miss" header in it only when the cache is not filled. Once filled (after the first visit), you wouldn't see "x-cache" "miss". Instead, you'd see "x-cache" "hit".
Do you have a test site where I can see a different behavior to understand what you are trying to say?

I'm actually using WP Rocket.
Heres my observation.
I always see the MISS header, but none of the other headers in location /.  However, I know we're serving the cached instance because I can see the page source with the annotation.  Further I know the location / is being executed because I can do a return 404 and see the 404.  For whatever reason the headers are getting lost.

Heres another example.  I would never see the header foo bar here.  I think this is because, per the documentation, location definitions in nginx inherit headers of the parent, however, if you specify headers in a location header that executes it overwrites the parent.
`    location ~* .php$ {
fastcgi_split_path_info ^(.+.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) { return 404; }
    # Mitigate https://httpoxy.org/ vulnerabilities
    fastcgi_param HTTP_PROXY "";

    include "fastcgi_params";
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_index               index.php;
    fastcgi_pass                fpm;

    add_header "X-CACHE" "MISS";
}
include "globals/wp-rocket.conf";
add_header foo bar;

`

ok I figured it out.  I needed to set
map $scheme $https_suffix { default '-https'; https '-https'; } in the common.conf
Thanks!