Unable to save category under listings and under accounts

Switching to test mode, under section listings and under section accounts unable to create parent category as hitting the save button results nothing

any idea?

Hey!
I tried it’s working. but happy to troubleshoot if you can share more informations.

I tried in different browsers, opera, chrome, edge
same result
basically clicking on save does nothing
it happens both under listings, as well as under accounts
therefore unable to either add categories under listings, or categories under accounts
please let me know what other information you need

1 Like

We need to troubleshoot this in deep. Not sure why this is happening. I will get back to you in 24hours. Checking with team on monday.

thanks for looking into this
there seems to be an issue with saving anything in the test mode as I tried other components, such as attributes, and the same occurred

another issue I came across, in normal mode, when you want to add an attribute under listing, it jumps to the home screen and again you have to click on settings and it’s a loop of this happening

Hey!
We discussed this internally and looking for some screenshots on what you are creating.
Testmode
Our assumption is you are entering a value in CATEGORY TYPE, Did you tried like that?

It will be really helpful if you can share visual like screenshots. So we can reproduce the errors.

Hi!

Thank you for the detailed screenshot. We found that your test account doesn’t have any default language set. Superadmin → Settings → Languages add the language of your choice and try to create categories. It should work fine.

Should you face any other issues, feel free to reply.

Thanks

thanks
I think it’s best to put a notice on the admin panel, to set the language first, to prevent confusion, or best, set English as default, so use can simply get on with testing the admin panel and sandbox environment

New issue
Account Attributes

trying to add attributes to accounts, results following error message:

full text of the error message:

TypeError: Cannot read properties of undefined (reading ‘key’)

keyExtractor

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:1350

  1347 | horizontal: false,  1348 | initialNumToRender: 10,  1349 | keyExtractor: function keyExtractor(item, index) {> 1350 |   if (item.key != null) {       | ^  1351 |     return item.key;  1352 |   }  1353 | 

View compiled

FlatList._this._keyExtractor

node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js:308

  305 |     /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an  306 |      * error found when Flow v0.63 was deployed. To see the error delete this  307 |      * comment and run Flow. */> 308 |     return keyExtractor(items, index);      | ^  309 |   }  310 | };  311 | 

View compiled

_loop

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:838

  835 |   836 | var _loop = function _loop(ii) {  837 |   var item = getItem(data, ii);> 838 |   var key = keyExtractor(item, ii);      | ^  839 |   840 |   _this2._indicesToKeys.set(ii, key);  841 | 

View compiled

VirtualizedList._pushCells

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:871

  868 |   };  869 |   870 |   for (var ii = first; ii <= last; ii++) {> 871 |     _loop(ii);      | ^  872 |   }  873 | };  874 | 

View compiled

VirtualizedList.render

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:935

  932 |     first = _this$state.first,  933 |     last = _this$state.last;  934 | > 935 | this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);      | ^  936 |   937 | var firstAfterInitial = Math.max(lastInitialIndex + 1, first);  938 | 

View compiled

finishClassComponent

node_modules/react-dom/cjs/react-dom.development.js:17485

  17482 | } else {  17483 |   {  17484 |     setIsRendering(true);> 17485 |     nextChildren = instance.render();        | ^  17486 |   17487 |     if ( workInProgress.mode & StrictMode) {  17488 |       disableLogs();

View compiled

updateClassComponent

node_modules/react-dom/cjs/react-dom.development.js:17435

  17432 |   shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);  17433 | }  17434 | > 17435 | var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);        | ^  17436 |   17437 | {  17438 |   var inst = workInProgress.stateNode;

View compiled

beginWork

node_modules/react-dom/cjs/react-dom.development.js:19073

  19070 |   19071 |     var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);  19072 | > 19073 |     return updateClassComponent(current, workInProgress, _Component2, _resolvedProps, renderLanes);        | ^  19074 |   }  19075 |   19076 | case HostRoot:

View compiled

HTMLUnknownElement.callCallback

node_modules/react-dom/cjs/react-dom.development.js:3945

  3942 | function callCallback() {  3943 |   didCall = true;  3944 |   restoreAfterDispatch();> 3945 |   func.apply(context, funcArgs);       | ^  3946 |   didError = false;  3947 | } // Create a global error event handler. We use this to capture the value  3948 | // that was thrown. It's possible that this error handler will fire more

View compiled

invokeGuardedCallbackDev

node_modules/react-dom/cjs/react-dom.development.js:3994

  3991 | // errors, it will trigger our global error handler.  3992 |   3993 | evt.initEvent(evtType, false, false);> 3994 | fakeNode.dispatchEvent(evt);       | ^  3995 |   3996 | if (windowEventDescriptor) {  3997 |   Object.defineProperty(window, 'event', windowEventDescriptor);

View compiled

invokeGuardedCallback

node_modules/react-dom/cjs/react-dom.development.js:4056

  4053 | function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {  4054 |   hasError = false;  4055 |   caughtError = null;> 4056 |   invokeGuardedCallbackImpl$1.apply(reporter, arguments);  4057 | }  4058 | /**  4059 |  * Same as invokeGuardedCallback, but instead of returning an error, it stores

View compiled

beginWork$1

node_modules/react-dom/cjs/react-dom.development.js:23964

  23961 | } // Run beginWork again.  23962 |   23963 | > 23964 | invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);        | ^  23965 |   23966 | if (hasCaughtError()) {  23967 |   var replayError = clearCaughtError(); // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.

View compiled

performUnitOfWork

node_modules/react-dom/cjs/react-dom.development.js:22776

  22773 |   22774 | if ( (unitOfWork.mode & ProfileMode) !== NoMode) {  22775 |   startProfilerTimer(unitOfWork);> 22776 |   next = beginWork$1(current, unitOfWork, subtreeRenderLanes);        | ^  22777 |   stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);  22778 | } else {  22779 |   next = beginWork$1(current, unitOfWork, subtreeRenderLanes);

View compiled

workLoopSync

node_modules/react-dom/cjs/react-dom.development.js:22707

  22704 | function workLoopSync() {  22705 |   // Already timed out, so perform work without checking if we need to yield.  22706 |   while (workInProgress !== null) {> 22707 |     performUnitOfWork(workInProgress);  22708 |   }  22709 | }  22710 | 

View compiled

renderRootSync

node_modules/react-dom/cjs/react-dom.development.js:22670

  22667 |   22668 | do {  22669 |   try {> 22670 |     workLoopSync();        | ^  22671 |     break;  22672 |   } catch (thrownValue) {  22673 |     handleError(root, thrownValue);

View compiled

performSyncWorkOnRoot

node_modules/react-dom/cjs/react-dom.development.js:22293

  22290 |   }  22291 | } else {  22292 |   lanes = getNextLanes(root, NoLanes);> 22293 |   exitStatus = renderRootSync(root, lanes);        | ^  22294 | }  22295 |   22296 | if (root.tag !== LegacyRoot && exitStatus === RootErrored) {

View compiled

(anonymous function)

node_modules/react-dom/cjs/react-dom.development.js:11327

  11324 |     var callback = _queue[i];  11325 |   11326 |     do {> 11327 |       callback = callback(_isSync2);        | ^  11328 |     } while (callback !== null);  11329 |   }  11330 | });

View compiled

unstable_runWithPriority

node_modules/scheduler/cjs/scheduler.development.js:646

  643 | currentPriorityLevel = priorityLevel;  644 |   645 | try {> 646 |   return eventHandler();      | ^  647 | } finally {  648 |   currentPriorityLevel = previousPriorityLevel;  649 | }

View compiled

runWithPriority$1

node_modules/react-dom/cjs/react-dom.development.js:11276

  11273 |   11274 | function runWithPriority$1(reactPriorityLevel, fn) {  11275 |   var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);> 11276 |   return Scheduler_runWithPriority(priorityLevel, fn);  11277 | }  11278 | function scheduleCallback(reactPriorityLevel, callback, options) {  11279 |   var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);

View compiled

flushSyncCallbackQueueImpl

node_modules/react-dom/cjs/react-dom.development.js:11322

  11319 | try {  11320 |   var _isSync2 = true;  11321 |   var _queue = syncQueue;> 11322 |   runWithPriority$1(ImmediatePriority$1, function () {        | ^  11323 |     for (; i < _queue.length; i++) {  11324 |       var callback = _queue[i];  11325 | 

View compiled

flushSyncCallbackQueue

node_modules/react-dom/cjs/react-dom.development.js:11309

  11306 |     Scheduler_cancelCallback(node);  11307 |   }  11308 | > 11309 |   flushSyncCallbackQueueImpl();  11310 | }  11311 |   11312 | function flushSyncCallbackQueueImpl() {

View compiled

scheduleUpdateOnFiber

node_modules/react-dom/cjs/react-dom.development.js:21893

  21890 |       // without immediately flushing it. We only do this for user-initiated  21891 |       // updates, to preserve historical behavior of legacy mode.  21892 |       resetRenderTimer();> 21893 |       flushSyncCallbackQueue();        | ^  21894 |     }  21895 |   }  21896 | } else {

View compiled

enqueueSetState

node_modules/react-dom/cjs/react-dom.development.js:12467

  12464 |   }  12465 |   12466 |   enqueueUpdate(fiber, update);> 12467 |   scheduleUpdateOnFiber(fiber, lane, eventTime);        | ^  12468 | },  12469 | enqueueReplaceState: function (inst, payload, callback) {  12470 |   var fiber = get(inst);

View compiled

AttributesList.push…/node_modules/react/cjs/react.development.js.Component.setState

node_modules/react/cjs/react.development.js:365

  362 |     }  363 |   }  364 | > 365 |   this.updater.enqueueSetState(this, partialState, callback, 'setState');  366 | };  367 | /**  368 |  * Forces an update. This should only be invoked when it is known with

View compiled

AttributesList.loadAttributeApi

src/Settings/Listings/AttributesList.js:76

  73 |     }  74 |     this.state.haveData = this.state.attributeArray.length == 0 ? true : false  75 |   }> 76 |   this.setState({dataLoad: true});     | ^  77 | };  78 | deleteAtrrApi = async id => {  79 |   this.setState({dataLoad: false});

View compiled

This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error. Click the ‘X’ or hit ESC to dismiss this message.

Thanks for the feedback, please do so more.

That was actually an overlooked situation. To share, we recently merged two interface (sandbox and Production). And tried to simplify things as much as we can. The one work we did is merging the login to use sandbox and production. When we did, the production setup worked properly where you will find the language you chosen but we forget to add languages for sandbox.

Also, there was the PLAN: onboarding which supposed to happen for sandbox when a user switched to TEST DATA for first time. We switched for some reason but missed to handle this.

This is one of the higher priority for new users, will let you know once we fixed that!

1 Like

Hey @Fplaza,
It’s fixed now. Let us know if you face any further issues on this.

1 Like

still get error

TypeError: Cannot read properties of undefined (reading ‘key’)

keyExtractor

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:1350

  1347 | horizontal: false,  1348 | initialNumToRender: 10,  1349 | keyExtractor: function keyExtractor(item, index) {> 1350 |   if (item.key != null) {       | ^  1351 |     return item.key;  1352 |   }  1353 | 

View compiled

FlatList._this._keyExtractor

node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js:308

  305 |     /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an  306 |      * error found when Flow v0.63 was deployed. To see the error delete this  307 |      * comment and run Flow. */> 308 |     return keyExtractor(items, index);      | ^  309 |   }  310 | };  311 | 

View compiled

_loop

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:838

  835 |   836 | var _loop = function _loop(ii) {  837 |   var item = getItem(data, ii);> 838 |   var key = keyExtractor(item, ii);      | ^  839 |   840 |   _this2._indicesToKeys.set(ii, key);  841 | 

View compiled

VirtualizedList._pushCells

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:871

  868 |   };  869 |   870 |   for (var ii = first; ii <= last; ii++) {> 871 |     _loop(ii);      | ^  872 |   }  873 | };  874 | 

View compiled

VirtualizedList.render

node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js:935

  932 |     first = _this$state.first,  933 |     last = _this$state.last;  934 | > 935 | this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);      | ^  936 |   937 | var firstAfterInitial = Math.max(lastInitialIndex + 1, first);  938 | 

View compiled

finishClassComponent

node_modules/react-dom/cjs/react-dom.development.js:17485

  17482 | } else {  17483 |   {  17484 |     setIsRendering(true);> 17485 |     nextChildren = instance.render();        | ^  17486 |   17487 |     if ( workInProgress.mode & StrictMode) {  17488 |       disableLogs();

View compiled

updateClassComponent

node_modules/react-dom/cjs/react-dom.development.js:17435

  17432 |   shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);  17433 | }  17434 | > 17435 | var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);        | ^  17436 |   17437 | {  17438 |   var inst = workInProgress.stateNode;

View compiled

beginWork

node_modules/react-dom/cjs/react-dom.development.js:19073

  19070 |   19071 |     var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);  19072 | > 19073 |     return updateClassComponent(current, workInProgress, _Component2, _resolvedProps, renderLanes);        | ^  19074 |   }  19075 |   19076 | case HostRoot:

View compiled

HTMLUnknownElement.callCallback

node_modules/react-dom/cjs/react-dom.development.js:3945

  3942 | function callCallback() {  3943 |   didCall = true;  3944 |   restoreAfterDispatch();> 3945 |   func.apply(context, funcArgs);       | ^  3946 |   didError = false;  3947 | } // Create a global error event handler. We use this to capture the value  3948 | // that was thrown. It's possible that this error handler will fire more

View compiled

invokeGuardedCallbackDev

node_modules/react-dom/cjs/react-dom.development.js:3994

  3991 | // errors, it will trigger our global error handler.  3992 |   3993 | evt.initEvent(evtType, false, false);> 3994 | fakeNode.dispatchEvent(evt);       | ^  3995 |   3996 | if (windowEventDescriptor) {  3997 |   Object.defineProperty(window, 'event', windowEventDescriptor);

View compiled

invokeGuardedCallback

node_modules/react-dom/cjs/react-dom.development.js:4056

  4053 | function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {  4054 |   hasError = false;  4055 |   caughtError = null;> 4056 |   invokeGuardedCallbackImpl$1.apply(reporter, arguments);  4057 | }  4058 | /**  4059 |  * Same as invokeGuardedCallback, but instead of returning an error, it stores

View compiled

beginWork$1

node_modules/react-dom/cjs/react-dom.development.js:23964

  23961 | } // Run beginWork again.  23962 |   23963 | > 23964 | invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);        | ^  23965 |   23966 | if (hasCaughtError()) {  23967 |   var replayError = clearCaughtError(); // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.

View compiled

performUnitOfWork

node_modules/react-dom/cjs/react-dom.development.js:22776

  22773 |   22774 | if ( (unitOfWork.mode & ProfileMode) !== NoMode) {  22775 |   startProfilerTimer(unitOfWork);> 22776 |   next = beginWork$1(current, unitOfWork, subtreeRenderLanes);        | ^  22777 |   stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);  22778 | } else {  22779 |   next = beginWork$1(current, unitOfWork, subtreeRenderLanes);

View compiled

workLoopSync

node_modules/react-dom/cjs/react-dom.development.js:22707

  22704 | function workLoopSync() {  22705 |   // Already timed out, so perform work without checking if we need to yield.  22706 |   while (workInProgress !== null) {> 22707 |     performUnitOfWork(workInProgress);  22708 |   }  22709 | }  22710 | 

View compiled

renderRootSync

node_modules/react-dom/cjs/react-dom.development.js:22670

  22667 |   22668 | do {  22669 |   try {> 22670 |     workLoopSync();        | ^  22671 |     break;  22672 |   } catch (thrownValue) {  22673 |     handleError(root, thrownValue);

View compiled

performSyncWorkOnRoot

node_modules/react-dom/cjs/react-dom.development.js:22293

  22290 |   }  22291 | } else {  22292 |   lanes = getNextLanes(root, NoLanes);> 22293 |   exitStatus = renderRootSync(root, lanes);        | ^  22294 | }  22295 |   22296 | if (root.tag !== LegacyRoot && exitStatus === RootErrored) {

View compiled

(anonymous function)

node_modules/react-dom/cjs/react-dom.development.js:11327

  11324 |     var callback = _queue[i];  11325 |   11326 |     do {> 11327 |       callback = callback(_isSync2);        | ^  11328 |     } while (callback !== null);  11329 |   }  11330 | });

View compiled

unstable_runWithPriority

node_modules/scheduler/cjs/scheduler.development.js:646

  643 | currentPriorityLevel = priorityLevel;  644 |   645 | try {> 646 |   return eventHandler();      | ^  647 | } finally {  648 |   currentPriorityLevel = previousPriorityLevel;  649 | }

View compiled

runWithPriority$1

node_modules/react-dom/cjs/react-dom.development.js:11276

  11273 |   11274 | function runWithPriority$1(reactPriorityLevel, fn) {  11275 |   var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);> 11276 |   return Scheduler_runWithPriority(priorityLevel, fn);  11277 | }  11278 | function scheduleCallback(reactPriorityLevel, callback, options) {  11279 |   var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);

View compiled

flushSyncCallbackQueueImpl

node_modules/react-dom/cjs/react-dom.development.js:11322

  11319 | try {  11320 |   var _isSync2 = true;  11321 |   var _queue = syncQueue;> 11322 |   runWithPriority$1(ImmediatePriority$1, function () {        | ^  11323 |     for (; i < _queue.length; i++) {  11324 |       var callback = _queue[i];  11325 | 

View compiled

flushSyncCallbackQueue

node_modules/react-dom/cjs/react-dom.development.js:11309

  11306 |     Scheduler_cancelCallback(node);  11307 |   }  11308 | > 11309 |   flushSyncCallbackQueueImpl();  11310 | }  11311 |   11312 | function flushSyncCallbackQueueImpl() {

View compiled

scheduleUpdateOnFiber

node_modules/react-dom/cjs/react-dom.development.js:21893

  21890 |       // without immediately flushing it. We only do this for user-initiated  21891 |       // updates, to preserve historical behavior of legacy mode.  21892 |       resetRenderTimer();> 21893 |       flushSyncCallbackQueue();        | ^  21894 |     }  21895 |   }  21896 | } else {

View compiled

enqueueSetState

node_modules/react-dom/cjs/react-dom.development.js:12467

  12464 |   }  12465 |   12466 |   enqueueUpdate(fiber, update);> 12467 |   scheduleUpdateOnFiber(fiber, lane, eventTime);        | ^  12468 | },  12469 | enqueueReplaceState: function (inst, payload, callback) {  12470 |   var fiber = get(inst);

View compiled

AttributesList.push…/node_modules/react/cjs/react.development.js.Component.setState

node_modules/react/cjs/react.development.js:365

  362 |     }  363 |   }  364 | > 365 |   this.updater.enqueueSetState(this, partialState, callback, 'setState');  366 | };  367 | /**  368 |  * Forces an update. This should only be invoked when it is known with

View compiled

AttributesList.loadAttributeApi

src/Settings/Listings/AttributesList.js:76

  73 |     }  74 |     this.state.haveData = this.state.attributeArray.length == 0 ? true : false  75 |   }> 76 |   this.setState({dataLoad: true});     | ^  77 | };  78 | deleteAtrrApi = async id => {  79 |   this.setState({dataLoad: false});

View compiled

This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error. Click the ‘X’ or hit ESC to dismiss this message.

glad I shed light to this :slight_smile:

Hi!
We identified what’s the issue and still need to fix that.

The issue due to newly released attributes

The first 4 items creation will not have any problems as that’s old attributes. But the new functionality is having the error.
Keep you posted

1 Like

Hi @fplaza

We have fixed that issue by removing our beta attributes. Now you can create new attributes with our stable attributes selection.

Let us know if you face any further issues.

Thanks for your patience on this. :slight_smile:

well it doesn’t seem to be fixed, as we keep getting the same lengthy error message whenever we click on adding listing attributes

tried to refresh the page, it goes back to the main page, where we need again to click on settings and choose listing and then adding listing attributes, and the same happens again

not sure what else we can do from our end, apart from logging the errors and reporting them to you guys

Hi @fplaza

It seems you’re trying it on sandbox mode.
We have removed existing beta attributes on the sandbox as well.
Can you try now?

Thanks

yes, in the test mode (sandbox)
now it seems to be working
thanks!

another issue we noticed is that none of drop down menus has scroll bar, which makes it impossible to go below certain items in the drop down

not only that, unfortunately up and down arrow keys also don’t work

appreciate if you look into it and find a way to make it work