-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Open
Labels
PubSubRelated to PubSub categoryRelated to PubSub categorydocumentationRelated to documentation feature requestsRelated to documentation feature requestsfeature-requestRequest a new featureRequest a new feature
Description
Before opening, please confirm:
- I have searched for duplicate or closed issues and discussions.
- I have read the guide for submitting bug reports.
- I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
JavaScript Framework
React
Amplify APIs
Authentication, PubSub
Amplify Categories
No response
Environment information
# Put output below this line
System:
OS: macOS 13.5.2
CPU: (10) arm64 Apple M1 Pro
Memory: 293.23 MB / 32.00 GB
Shell: 3.5.1 - /opt/homebrew/bin/fish
Binaries:
Node: 20.2.0 - ~/.volta/tools/image/node/20.2.0/bin/node
Yarn: 1.22.19 - ~/.volta/tools/image/yarn/1.22.19/bin/yarn
npm: 9.6.6 - ~/.volta/tools/image/node/20.2.0/bin/npm
pnpm: 8.6.12 - ~/.volta/bin/pnpm
Browsers:
Chrome: 119.0.6045.159
Edge: 119.0.2151.72
npmPackages:
@aws-amplify/pubsub: ^6.0.3 => 6.0.3
@aws-amplify/ui-react: ^6.0.2 => 6.0.2
@types/react: ^18.2.37 => 18.2.37
@types/react-dom: ^18.2.15 => 18.2.15
@typescript-eslint/eslint-plugin: ^6.10.0 => 6.10.0
@typescript-eslint/parser: ^6.10.0 => 6.10.0
@vitejs/plugin-react: ^4.2.0 => 4.2.0
aws-amplify: ^6.0.3 => 6.0.3
eslint: ^8.53.0 => 8.53.0
eslint-plugin-react-hooks: ^4.6.0 => 4.6.0
eslint-plugin-react-refresh: ^0.4.4 => 0.4.4
react: ^18.2.0 => 18.2.0
react-dom: ^18.2.0 => 18.2.0
typescript: ^5.2.2 => 5.2.2
vite: ^5.0.0 => 5.0.0
npmGlobalPackages:
corepack: 0.17.2
npm: 9.6.6
Describe the bug
When setting the clientId
in the PubSub client to a fixed value to enforce security best practices (such as creating a least privilege policy to limit the connection with a specific clientId
only), the application enters an infinite connection loop, as the client tries to connect with the same ID causing a DUPLICATE_CLIENT_ID disconnection error.
Expected behavior
The client connects
Reproduction steps
Create a React app, add Amplify PubSub as per documentation
Additionally set the clientId
to a fixed value
Code Snippet
import { useEffect, useRef, useState } from 'react';
import reactLogo from './assets/react.svg';
import viteLogo from '/vite.svg';
import { PubSub } from '@aws-amplify/pubsub';
import '@aws-amplify/ui-react/styles.css';
import './App.css';
import { withAuthenticator } from '@aws-amplify/ui-react';
import { fetchAuthSession } from 'aws-amplify/auth';
function App() {
const [count, setCount] = useState(0);
const pubsub = useRef<PubSub | undefined>(undefined);
useEffect(() => {
console.log('Publishing ', count);
pubsub.current
?.publish({
topics: 'hello',
message: { msg: `Hello ${count}` },
})
.catch((err) => console.error(err));
}, [count]);
useEffect(() => {
fetchAuthSession().then((info) => {
console.log(info.identityId);
pubsub.current = new PubSub({
endpoint: 'wss://xxxxxxxxxxx-ats.iot.eu-west-1.amazonaws.com/mqtt',
region: 'eu-west-1',
clientId: info.identityId,
});
pubsub.current.subscribe({ topics: [] }).subscribe({});
});
}, []);
return (
<>
<div>
<a href="https://vitejs.dev" target="_blank">
<img src={viteLogo} className="logo" alt="Vite logo" />
</a>
<a href="https://react.dev" target="_blank">
<img src={reactLogo} className="logo react" alt="React logo" />
</a>
</div>
<h1>Vite + React</h1>
<div className="card">
<button
onClick={async () => {
setCount((count) => count + 1);
}}
>
count is {count}
</button>
<p>
Edit <code>src/App.tsx</code> and save to test HMR
</p>
</div>
<p className="read-the-docs">
Click on the Vite and React logos to learn more
</p>
</>
);
}
export default withAuthenticator(App);
Log output
// Put your logs below this line
[DEBUG] 10:34.110 CognitoCredentialsProvider - returning stored credentials as they neither past TTL nor expired. [ConsoleLogger.ts:73:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[DEBUG] 10:34.115 MqttOverWS - Creating new MQTT client eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 [ConsoleLogger.ts:85:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[WARN] 10:34.432 MqttOverWS - eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 {
"errorCode": 8,
"errorMessage": "AMQJS0008I Socket closed.",
"uri": "wss://acwprzq1nws9h-ats.iot.eu-west-1.amazonaws.com/mqtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA2FVXUBKZBHRD5SFJ%2F20231120%2Feu-west-1%2Fiotdevicegateway%2Faws4_request&X-Amz-Date=20231120T121028Z&X-Amz-SignedHeaders=host&X-Amz-Signature=e2552f5f3144d9190da88d7a4bc72abb7a706a6a4792507d61ba6364fb2d770f&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQD25rEH%2F%2FpcfHGEdeyjJu2AXdEPHW8j9aVYgxTm%2FGYh3QIhAKdcP6F%2FPJcZE68gbdh8vuAs2XZb%2BVBeYqiUXp9ku3WfKs0ECO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMNjk5MzkxMDE5Njk4IgxKgx4AOEZaJThdLSkqoQSDfvHjGH98zYBNlt2wZDvmw2%2FjDuaKJxIiEXeK3UTSU%2BtFDcNKN5Pj%2BN169chO86TL121CaQt6S2%2B6p16z4jPFyVB0KLlPFTsuWqgi64VZTVJOoLvTRylrIK8VZc6VHgHKD7y23p0MmFJB10QUMz%2F7NDHzO%2Fvjg3JGF6tVDdRt36OR67rfzOGOFnZM9l6Q5LBgidN9y3tS%2Fwg2taAlElHLa592Ohg0w0PuKsTVro5QBOqiN77gw8f4GVgi0rC%2BLNsF7MvPGxuS8CSL%2BYlKAfMHJqcO7ZPHpWNmys7tewFxyBK4mQfpZ0HeQb1ax0Vz%2BvzK5OLBteW2K7VqAUhbr6JStz6pVAABi6gPO1tGEhrHPGuPrc8j2lNQCnztDENO7t0z%2BWoQ7QqPOav8I%2BWyDR0Nn%2FeSvpDoWkYUcD5r6nKHZ7HYxWw%2FH7qGdNYQ%2F5UlkyDjo7IlrVN1dFDcbb3aiRrxec48j7I4P9JPPOtT08PVca2l37O997%2FRbFWIBKMFSYmpm2%2B8UV63EAicyb8vqvsXDa6N0caCZmEbqt9SrF5GUrE%2BgkNP0VHs6MLo%2BEuKyZn7wWQ5CT1RbzlskrSMGm7o1PVoWIkZ0uSUFs8W8MLbabjEiPvRLNVTv5W6oZCIamrj3idkM9ZflWPhZc4IiEJM3xN%2FN%2BTwKLdOdaXiNXSl8WGSGQnTHcOWJzTYQQmV9k6cmWVc8vTMFsw7CcsNIpNfWDCUme2qBjqEAkmlogynGVgP9TaciKcZ7Fmi2%2B1Q9kZ%2FNVTFwVCjPUj%2BJeV%2BZFX1dlBv4DH1FHBT3DG%2BCDfHnkuMeooLcmOdCfOrGa8%2BpaOYE6uw34OqZou4ofjgZNF8OkMgDYMohPX%2Bo%2FDetK8LDC8TyIZ15YQhpa8mWarN8h3l6v4H2Wrqo15AR0TsA61xGI%2BIaOVx0DIx1co4R47nVRDw9bGIhYqLW6zru%2BdGWlJBNx82Kxm4%2BaXvtY%2B63EypQ%2F4owh1lN1E8vm2%2F47aMW1Ry4vzUU9OX%2BzwEtm4vSfubsHhhvP5%2FIsB0Tk%2FW%2BVBC%2Fu82pEjmE2AtDPq6RS%2FSbYEF4W1dHoT8J1U07AXC"
} [localhost:5173:12966:25](http://localhost:5173/)
[DEBUG] 10:39.439 CognitoCredentialsProvider - returning stored credentials as they neither past TTL nor expired. [ConsoleLogger.ts:73:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[DEBUG] 10:39.440 MqttOverWS - Creating new MQTT client eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 [ConsoleLogger.ts:85:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[WARN] 10:39.651 MqttOverWS - eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 {
"errorCode": 8,
"errorMessage": "AMQJS0008I Socket closed.",
"uri": "wss://acwprzq1nws9h-ats.iot.eu-west-1.amazonaws.com/mqtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA2FVXUBKZBHRD5SFJ%2F20231120%2Feu-west-1%2Fiotdevicegateway%2Faws4_request&X-Amz-Date=20231120T121034Z&X-Amz-SignedHeaders=host&X-Amz-Signature=648852b828705255ad8652f5727a0acc34a3ec300dbff1893152b961fc98d081&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQD25rEH%2F%2FpcfHGEdeyjJu2AXdEPHW8j9aVYgxTm%2FGYh3QIhAKdcP6F%2FPJcZE68gbdh8vuAs2XZb%2BVBeYqiUXp9ku3WfKs0ECO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMNjk5MzkxMDE5Njk4IgxKgx4AOEZaJThdLSkqoQSDfvHjGH98zYBNlt2wZDvmw2%2FjDuaKJxIiEXeK3UTSU%2BtFDcNKN5Pj%2BN169chO86TL121CaQt6S2%2B6p16z4jPFyVB0KLlPFTsuWqgi64VZTVJOoLvTRylrIK8VZc6VHgHKD7y23p0MmFJB10QUMz%2F7NDHzO%2Fvjg3JGF6tVDdRt36OR67rfzOGOFnZM9l6Q5LBgidN9y3tS%2Fwg2taAlElHLa592Ohg0w0PuKsTVro5QBOqiN77gw8f4GVgi0rC%2BLNsF7MvPGxuS8CSL%2BYlKAfMHJqcO7ZPHpWNmys7tewFxyBK4mQfpZ0HeQb1ax0Vz%2BvzK5OLBteW2K7VqAUhbr6JStz6pVAABi6gPO1tGEhrHPGuPrc8j2lNQCnztDENO7t0z%2BWoQ7QqPOav8I%2BWyDR0Nn%2FeSvpDoWkYUcD5r6nKHZ7HYxWw%2FH7qGdNYQ%2F5UlkyDjo7IlrVN1dFDcbb3aiRrxec48j7I4P9JPPOtT08PVca2l37O997%2FRbFWIBKMFSYmpm2%2B8UV63EAicyb8vqvsXDa6N0caCZmEbqt9SrF5GUrE%2BgkNP0VHs6MLo%2BEuKyZn7wWQ5CT1RbzlskrSMGm7o1PVoWIkZ0uSUFs8W8MLbabjEiPvRLNVTv5W6oZCIamrj3idkM9ZflWPhZc4IiEJM3xN%2FN%2BTwKLdOdaXiNXSl8WGSGQnTHcOWJzTYQQmV9k6cmWVc8vTMFsw7CcsNIpNfWDCUme2qBjqEAkmlogynGVgP9TaciKcZ7Fmi2%2B1Q9kZ%2FNVTFwVCjPUj%2BJeV%2BZFX1dlBv4DH1FHBT3DG%2BCDfHnkuMeooLcmOdCfOrGa8%2BpaOYE6uw34OqZou4ofjgZNF8OkMgDYMohPX%2Bo%2FDetK8LDC8TyIZ15YQhpa8mWarN8h3l6v4H2Wrqo15AR0TsA61xGI%2BIaOVx0DIx1co4R47nVRDw9bGIhYqLW6zru%2BdGWlJBNx82Kxm4%2BaXvtY%2B63EypQ%2F4owh1lN1E8vm2%2F47aMW1Ry4vzUU9OX%2BzwEtm4vSfubsHhhvP5%2FIsB0Tk%2FW%2BVBC%2Fu82pEjmE2AtDPq6RS%2FSbYEF4W1dHoT8J1U07AXC"
} [localhost:5173:12966:25](http://localhost:5173/)
[DEBUG] 10:44.658 CognitoCredentialsProvider - returning stored credentials as they neither past TTL nor expired. [ConsoleLogger.ts:73:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[DEBUG] 10:44.660 MqttOverWS - Creating new MQTT client eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 [ConsoleLogger.ts:85:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[WARN] 10:44.868 MqttOverWS - eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 {
"errorCode": 8,
"errorMessage": "AMQJS0008I Socket closed.",
"uri": "wss://acwprzq1nws9h-ats.iot.eu-west-1.amazonaws.com/mqtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA2FVXUBKZBHRD5SFJ%2F20231120%2Feu-west-1%2Fiotdevicegateway%2Faws4_request&X-Amz-Date=20231120T121039Z&X-Amz-SignedHeaders=host&X-Amz-Signature=1006ae47ccdaa5c0f689ee67c54feb3ef274e48543a22d733ba8992d7ce7c196&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQD25rEH%2F%2FpcfHGEdeyjJu2AXdEPHW8j9aVYgxTm%2FGYh3QIhAKdcP6F%2FPJcZE68gbdh8vuAs2XZb%2BVBeYqiUXp9ku3WfKs0ECO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMNjk5MzkxMDE5Njk4IgxKgx4AOEZaJThdLSkqoQSDfvHjGH98zYBNlt2wZDvmw2%2FjDuaKJxIiEXeK3UTSU%2BtFDcNKN5Pj%2BN169chO86TL121CaQt6S2%2B6p16z4jPFyVB0KLlPFTsuWqgi64VZTVJOoLvTRylrIK8VZc6VHgHKD7y23p0MmFJB10QUMz%2F7NDHzO%2Fvjg3JGF6tVDdRt36OR67rfzOGOFnZM9l6Q5LBgidN9y3tS%2Fwg2taAlElHLa592Ohg0w0PuKsTVro5QBOqiN77gw8f4GVgi0rC%2BLNsF7MvPGxuS8CSL%2BYlKAfMHJqcO7ZPHpWNmys7tewFxyBK4mQfpZ0HeQb1ax0Vz%2BvzK5OLBteW2K7VqAUhbr6JStz6pVAABi6gPO1tGEhrHPGuPrc8j2lNQCnztDENO7t0z%2BWoQ7QqPOav8I%2BWyDR0Nn%2FeSvpDoWkYUcD5r6nKHZ7HYxWw%2FH7qGdNYQ%2F5UlkyDjo7IlrVN1dFDcbb3aiRrxec48j7I4P9JPPOtT08PVca2l37O997%2FRbFWIBKMFSYmpm2%2B8UV63EAicyb8vqvsXDa6N0caCZmEbqt9SrF5GUrE%2BgkNP0VHs6MLo%2BEuKyZn7wWQ5CT1RbzlskrSMGm7o1PVoWIkZ0uSUFs8W8MLbabjEiPvRLNVTv5W6oZCIamrj3idkM9ZflWPhZc4IiEJM3xN%2FN%2BTwKLdOdaXiNXSl8WGSGQnTHcOWJzTYQQmV9k6cmWVc8vTMFsw7CcsNIpNfWDCUme2qBjqEAkmlogynGVgP9TaciKcZ7Fmi2%2B1Q9kZ%2FNVTFwVCjPUj%2BJeV%2BZFX1dlBv4DH1FHBT3DG%2BCDfHnkuMeooLcmOdCfOrGa8%2BpaOYE6uw34OqZou4ofjgZNF8OkMgDYMohPX%2Bo%2FDetK8LDC8TyIZ15YQhpa8mWarN8h3l6v4H2Wrqo15AR0TsA61xGI%2BIaOVx0DIx1co4R47nVRDw9bGIhYqLW6zru%2BdGWlJBNx82Kxm4%2BaXvtY%2B63EypQ%2F4owh1lN1E8vm2%2F47aMW1Ry4vzUU9OX%2BzwEtm4vSfubsHhhvP5%2FIsB0Tk%2FW%2BVBC%2Fu82pEjmE2AtDPq6RS%2FSbYEF4W1dHoT8J1U07AXC"
} [localhost:5173:12966:25](http://localhost:5173/)
[DEBUG] 10:49.874 CognitoCredentialsProvider - returning stored credentials as they neither past TTL nor expired. [ConsoleLogger.ts:73:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[DEBUG] 10:49.875 MqttOverWS - Creating new MQTT client eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 [ConsoleLogger.ts:85:16](http://localhost:5173/node_modules/.pnpm/@aws-amplify+core@6.0.3/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts)
[WARN] 10:50.87 MqttOverWS - eu-west-1:d7a3b34e-819c-4ddb-ae5e-e191b758f168 {
"errorCode": 8,
"errorMessage": "AMQJS0008I Socket closed.",
"uri": "wss://acwprzq1nws9h-ats.iot.eu-west-1.amazonaws.com/mqtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA2FVXUBKZBHRD5SFJ%2F20231120%2Feu-west-1%2Fiotdevicegateway%2Faws4_request&X-Amz-Date=20231120T121044Z&X-Amz-SignedHeaders=host&X-Amz-Signature=783590327095272abf8427dc992f2eb6f9ed805b34ead76c9c44ef58626e1b41&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQD25rEH%2F%2FpcfHGEdeyjJu2AXdEPHW8j9aVYgxTm%2FGYh3QIhAKdcP6F%2FPJcZE68gbdh8vuAs2XZb%2BVBeYqiUXp9ku3WfKs0ECO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMNjk5MzkxMDE5Njk4IgxKgx4AOEZaJThdLSkqoQSDfvHjGH98zYBNlt2wZDvmw2%2FjDuaKJxIiEXeK3UTSU%2BtFDcNKN5Pj%2BN169chO86TL121CaQt6S2%2B6p16z4jPFyVB0KLlPFTsuWqgi64VZTVJOoLvTRylrIK8VZc6VHgHKD7y23p0MmFJB10QUMz%2F7NDHzO%2Fvjg3JGF6tVDdRt36OR67rfzOGOFnZM9l6Q5LBgidN9y3tS%2Fwg2taAlElHLa592Ohg0w0PuKsTVro5QBOqiN77gw8f4GVgi0rC%2BLNsF7MvPGxuS8CSL%2BYlKAfMHJqcO7ZPHpWNmys7tewFxyBK4mQfpZ0HeQb1ax0Vz%2BvzK5OLBteW2K7VqAUhbr6JStz6pVAABi6gPO1tGEhrHPGuPrc8j2lNQCnztDENO7t0z%2BWoQ7QqPOav8I%2BWyDR0Nn%2FeSvpDoWkYUcD5r6nKHZ7HYxWw%2FH7qGdNYQ%2F5UlkyDjo7IlrVN1dFDcbb3aiRrxec48j7I4P9JPPOtT08PVca2l37O997%2FRbFWIBKMFSYmpm2%2B8UV63EAicyb8vqvsXDa6N0caCZmEbqt9SrF5GUrE%2BgkNP0VHs6MLo%2BEuKyZn7wWQ5CT1RbzlskrSMGm7o1PVoWIkZ0uSUFs8W8MLbabjEiPvRLNVTv5W6oZCIamrj3idkM9ZflWPhZc4IiEJM3xN%2FN%2BTwKLdOdaXiNXSl8WGSGQnTHcOWJzTYQQmV9k6cmWVc8vTMFsw7CcsNIpNfWDCUme2qBjqEAkmlogynGVgP9TaciKcZ7Fmi2%2B1Q9kZ%2FNVTFwVCjPUj%2BJeV%2BZFX1dlBv4DH1FHBT3DG%2BCDfHnkuMeooLcmOdCfOrGa8%2BpaOYE6uw34OqZou4ofjgZNF8OkMgDYMohPX%2Bo%2FDetK8LDC8TyIZ15YQhpa8mWarN8h3l6v4H2Wrqo15AR0TsA61xGI%2BIaOVx0DIx1co4R47nVRDw9bGIhYqLW6zru%2BdGWlJBNx82Kxm4%2BaXvtY%2B63EypQ%2F4owh1lN1E8vm2%2F47aMW1Ry4vzUU9OX%2BzwEtm4vSfubsHhhvP5%2FIsB0Tk%2FW%2BVBC%2Fu82pEjmE2AtDPq6RS%2FSbYEF4W1dHoT8J1U07AXC"
} [localhost:5173:12966:25](http://localhost:5173/)
aws-exports.js
No response
Manual configuration
No response
Additional configuration
No response
Mobile Device
No response
Mobile Operating System
No response
Mobile Browser
No response
Mobile Browser Version
No response
Additional information and screenshots
No response
Metadata
Metadata
Assignees
Labels
PubSubRelated to PubSub categoryRelated to PubSub categorydocumentationRelated to documentation feature requestsRelated to documentation feature requestsfeature-requestRequest a new featureRequest a new feature