Contact form not working

I’ve configured my mail server and enabled the contact form, but it’s not working.
Where can I send an email?

Do you have an error in peertube logs?

Where can I see the error log?

Please see the documentation: Logs | PeerTube documentation

Thank you.
I got an error like this.

error[2023/8/17 17:53:20] uncaughtException: Invalid URL TypeError [ERR_INVALID_URL]: Invalid URL at new NodeError (node:internal/errors:405:5) at new URL (node:internal/url:778:13) at sanitizeUrl (/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js:197:21) at Object.sendContactMail (/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js:210:24) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/main.js:1881:18 at Layer.handle [as handle_request] (/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/layer.js:95:5) at next (/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/route.js:144:13) at hpp (/var/www/peertube/storage/plugins/node_modules/hpp/lib/index.js:146:9) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xXssProtectionMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-xss-protection/index.js:6:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xPoweredByMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-powered-by/index.js:6:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xPermittedCrossDomainPoliciesMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-permitted-cross-domain-policies/index.js:15:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xFrameOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-frame-options/index.js:21:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xDownloadOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-download-options/index.js:6:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xDnsPrefetchControlMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-dns-prefetch-control/index.js:7:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at originAgentClusterMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/origin-agent-cluster/index.js:6:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at xContentTypeOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-content-type-options/index.js:6:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at strictTransportSecurityMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/strict-transport-security/index.js:34:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at referrerPolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/referrer-policy/index.js:24:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at expectCtMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/expect-ct/index.js:24:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at crossOriginResourcePolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-resource-policy/index.js:15:3) at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9 at crossOriginOpenerPolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-opener-policy/index.js:15:3)
{
  "error": {
    "stack": "TypeError [ERR_INVALID_URL]: Invalid URL\n    at new NodeError (node:internal/errors:405:5)\n    at new URL (node:internal/url:778:13)\n    at sanitizeUrl (/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js:197:21)\n    at Object.sendContactMail (/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js:210:24)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/main.js:1881:18\n    at Layer.handle [as handle_request] (/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/layer.js:95:5)\n    at next (/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/route.js:144:13)\n    at hpp (/var/www/peertube/storage/plugins/node_modules/hpp/lib/index.js:146:9)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xXssProtectionMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-xss-protection/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xPoweredByMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-powered-by/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xPermittedCrossDomainPoliciesMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-permitted-cross-domain-policies/index.js:15:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xFrameOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-frame-options/index.js:21:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xDownloadOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-download-options/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xDnsPrefetchControlMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-dns-prefetch-control/index.js:7:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at originAgentClusterMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/origin-agent-cluster/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xContentTypeOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-content-type-options/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at strictTransportSecurityMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/strict-transport-security/index.js:34:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at referrerPolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/referrer-policy/index.js:24:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at expectCtMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/expect-ct/index.js:24:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at crossOriginResourcePolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-resource-policy/index.js:15:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at crossOriginOpenerPolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-opener-policy/index.js:15:3)",
    "input": "http://:",
    "message": "Invalid URL",
    "code": "ERR_INVALID_URL"
  },
  "stack": "TypeError [ERR_INVALID_URL]: Invalid URL\n    at new NodeError (node:internal/errors:405:5)\n    at new URL (node:internal/url:778:13)\n    at sanitizeUrl (/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js:197:21)\n    at Object.sendContactMail (/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js:210:24)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/main.js:1881:18\n    at Layer.handle [as handle_request] (/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/layer.js:95:5)\n    at next (/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/route.js:144:13)\n    at hpp (/var/www/peertube/storage/plugins/node_modules/hpp/lib/index.js:146:9)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xXssProtectionMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-xss-protection/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xPoweredByMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-powered-by/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xPermittedCrossDomainPoliciesMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-permitted-cross-domain-policies/index.js:15:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xFrameOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-frame-options/index.js:21:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xDownloadOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-download-options/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xDnsPrefetchControlMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-dns-prefetch-control/index.js:7:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at originAgentClusterMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/origin-agent-cluster/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at xContentTypeOptionsMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-content-type-options/index.js:6:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at strictTransportSecurityMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/strict-transport-security/index.js:34:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at referrerPolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/referrer-policy/index.js:24:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at expectCtMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/expect-ct/index.js:24:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at crossOriginResourcePolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-resource-policy/index.js:15:3)\n    at /var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js:20:9\n    at crossOriginOpenerPolicyMiddleware (/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-opener-policy/index.js:15:3)",
  "exception": true,
  "date": "Thu Aug 17 2023 08:53:20 GMT+0000 (Coordinated Universal Time)",
  "process": {
    "pid": 42619,
    "uid": 1001,
    "gid": 1001,
    "cwd": "/var/www/peertube/versions/peertube-v5.2.0",
    "execPath": "/usr/bin/node",
    "version": "v20.5.1",
    "argv": [
      "/usr/bin/node",
      "/var/www/peertube/versions/peertube-v5.2.0/dist/server"
    ],
    "memoryUsage": {
      "rss": 270721024,
      "heapTotal": 161132544,
      "heapUsed": 152616440,
      "external": 16061443,
      "arrayBuffers": 12014241
    }
  },
  "os": {
    "loadavg": [
      0.12,
      0.11,
      0.05
    ],
    "uptime": 202527.59
  },
  "trace": [
    {
      "column": 5,
      "file": "node:internal/errors",
      "function": "new NodeError",
      "line": 405,
      "method": null,
      "native": false
    },
    {
      "column": 13,
      "file": "node:internal/url",
      "function": "new URL",
      "line": 778,
      "method": null,
      "native": false
    },
    {
      "column": 21,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js",
      "function": "sanitizeUrl",
      "line": 197,
      "method": null,
      "native": false
    },
    {
      "column": 24,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/email.js",
      "function": "Object.sendContactMail",
      "line": 210,
      "method": "sendContactMail",
      "native": false
    },
    {
      "column": 18,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/main.js",
      "function": null,
      "line": 1881,
      "method": null,
      "native": false
    },
    {
      "column": 5,
      "file": "/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/layer.js",
      "function": "Layer.handle [as handle_request]",
      "line": 95,
      "method": "handle [as handle_request]",
      "native": false
    },
    {
      "column": 13,
      "file": "/var/www/peertube/versions/peertube-v5.2.0/node_modules/express/lib/router/route.js",
      "function": "next",
      "line": 144,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/hpp/lib/index.js",
      "function": "hpp",
      "line": 146,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-xss-protection/index.js",
      "function": "xXssProtectionMiddleware",
      "line": 6,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-powered-by/index.js",
      "function": "xPoweredByMiddleware",
      "line": 6,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-permitted-cross-domain-policies/index.js",
      "function": "xPermittedCrossDomainPoliciesMiddleware",
      "line": 15,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-frame-options/index.js",
      "function": "xFrameOptionsMiddleware",
      "line": 21,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-download-options/index.js",
      "function": "xDownloadOptionsMiddleware",
      "line": 6,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-dns-prefetch-control/index.js",
      "function": "xDnsPrefetchControlMiddleware",
      "line": 7,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/origin-agent-cluster/index.js",
      "function": "originAgentClusterMiddleware",
      "line": 6,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/x-content-type-options/index.js",
      "function": "xContentTypeOptionsMiddleware",
      "line": 6,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/strict-transport-security/index.js",
      "function": "strictTransportSecurityMiddleware",
      "line": 34,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/referrer-policy/index.js",
      "function": "referrerPolicyMiddleware",
      "line": 24,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/expect-ct/index.js",
      "function": "expectCtMiddleware",
      "line": 24,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-resource-policy/index.js",
      "function": "crossOriginResourcePolicyMiddleware",
      "line": 15,
      "method": null,
      "native": false
    },
    {
      "column": 9,
      "file": "/var/www/peertube/storage/plugins/node_modules/peertube-plugin-hive-tube/server/security.js",
      "function": null,
      "line": 20,
      "method": null,
      "native": false
    },
    {
      "column": 3,
      "file": "/var/www/peertube/storage/plugins/node_modules/helmet/dist/middlewares/cross-origin-opener-policy/index.js",
      "function": "crossOriginOpenerPolicyMiddleware",
      "line": 15,
      "method": null,
      "native": false
    }
  ]
}

Try to uninstall hive tube plugin, it seems to be responsible for this bug

I was able to send it.
Sounds like a Hive-Tube-Plugin issue.
Thank you.

Is there a way to use it with Hive-Tube?

Report the error to the hive tube plugin developers, so they can fix it.

1 « J'aime »