diff --git a/app/javascript/components/admin/manage_users/ManageUserRow.jsx b/app/javascript/components/admin/manage_users/ManageUserRow.jsx
index 8b036cbaf76149cf32c0e6cdec4d38dfba65ec24..129bcaed37fc5ac44b64f2fac4f78496e01d14c4 100644
--- a/app/javascript/components/admin/manage_users/ManageUserRow.jsx
+++ b/app/javascript/components/admin/manage_users/ManageUserRow.jsx
@@ -17,12 +17,15 @@ import useCreateServerRoom from '../../../hooks/mutations/admin/manage_users/use
 import DeleteUserForm from './forms/DeleteUserForm';
 import useUpdateUserStatus from '../../../hooks/mutations/admin/manage_users/useUpdateUserStatus';
 import RoleBadge from '../roles/RoleBadge';
+import { useAuth } from '../../../contexts/auth/AuthProvider';
 
 export default function ManageUserRow({ user }) {
   const { t } = useTranslation();
+  const currentUser = useAuth();
+
   const mutationWrapper = (args) => useCreateServerRoom({ userId: user.id, ...args });
   const updateUserStatus = useUpdateUserStatus();
-  const localizedTime = localizeDateTimeString(user?.created_at, user?.language);
+  const localizedTime = localizeDateTimeString(user?.created_at, currentUser?.language);
 
   return (
     <tr key={user.id} className="align-middle text-muted border border-2">
diff --git a/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx b/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx
index c41c0879554412685a4ac123dc1b51ce7499e794..45dbb34ae95b4fab785f15f35113a2c9c2f3240d 100644
--- a/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx
+++ b/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx
@@ -32,11 +32,12 @@ export default function SettingSelect({
 
 SettingSelect.defaultProps = {
   defaultValue: '',
+  children: undefined,
 };
 
 SettingSelect.propTypes = {
   defaultValue: PropTypes.string,
   title: PropTypes.string.isRequired,
   description: PropTypes.string.isRequired,
-  children: PropTypes.arrayOf(PropTypes.element).isRequired,
+  children: PropTypes.arrayOf(PropTypes.element),
 };
diff --git a/app/javascript/components/home/HomePage.jsx b/app/javascript/components/home/HomePage.jsx
index d7bc131dca78836c539bf51cba1389b353efd100..a33417b617397591e29e8ee8ad804d65ac2b96b2 100644
--- a/app/javascript/components/home/HomePage.jsx
+++ b/app/javascript/components/home/HomePage.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useMemo } from 'react';
+import React, { useEffect } from 'react';
 import {
   Col, Row,
 } from 'react-bootstrap';
@@ -31,10 +31,9 @@ export default function HomePage() {
     [currentUser.signed_in],
   );
 
-  // hack to deal with the fact that useEffect and toast dont work together very well
-  useMemo(() => {
+  useEffect(() => {
     switch (error) {
-      case 'InviteInvald':
+      case 'InviteInvalid':
         toast.error(t('toast.error.users.invalid_invite'));
         break;
       case 'SignupError':
@@ -42,8 +41,7 @@ export default function HomePage() {
         break;
       default:
     }
-    // Remove the error
-    setSearchParams(searchParams.delete('error'));
+    if (error) { setSearchParams(searchParams.delete('error')); }
   }, [error]);
 
   return (
diff --git a/app/javascript/components/recordings/RecordingRow.jsx b/app/javascript/components/recordings/RecordingRow.jsx
index 97b37d805fa1b30a856b3127f118aa7741631395..9db4089dbd647bb05b3a527d63da2cf3f8af80db 100644
--- a/app/javascript/components/recordings/RecordingRow.jsx
+++ b/app/javascript/components/recordings/RecordingRow.jsx
@@ -97,7 +97,7 @@ export default function RecordingRow({
           <Button
             onClick={() => window.open(format.url, '_blank')}
             className={`btn-sm rounded-pill me-1 mt-1 border-0 btn-format-${format.recording_type.toLowerCase()}`}
-            key={format.id}
+            key={`${format.recording_type}-${format.url}`}
           >
             {format.recording_type}
           </Button>
diff --git a/app/javascript/components/recordings/RecordingsList.jsx b/app/javascript/components/recordings/RecordingsList.jsx
index 6c098dd5ecb3b32a3e7802afc5a8c02bc51edb29..9a39a962b181d1977661d455f091f0858f7db93d 100644
--- a/app/javascript/components/recordings/RecordingsList.jsx
+++ b/app/javascript/components/recordings/RecordingsList.jsx
@@ -90,7 +90,10 @@ RecordingsList.propTypes = {
       name: PropTypes.string,
       length: PropTypes.number,
       visibility: PropTypes.string,
-      formats: PropTypes.arrayOf(PropTypes.string),
+      formats: PropTypes.arrayOf(PropTypes.shape({
+        recording_type: PropTypes.string,
+        url: PropTypes.string,
+      })),
       users: PropTypes.arrayOf(PropTypes.shape({
         id: PropTypes.number,
         name: PropTypes.string,