"User requests password recovery by link" page returns "404. File not found."

I have a email template for password recovery, but when the user click the link the page returns “404. File not found.”

Any idea?

Hello @Dario_Castaneda,

We will be happy to assist you. I need to ask you a few more questions so I can understand the problem better. Please describe the steps how to reproduce the issue and provide your application id.

Hi @sergey.kuk

I have an email template in Messaging - Email section in my app.

From JS SDK I call the Backendless.UserService.restorePassword function, and the user receives the email (based on the template) with the link to reset the password. The link provided in the email is the following:

https://api.backendless.com/7E819124-27B5-85D2-FF77-9FB70FF33800/4D956DB2-9DC3-4D1E-B97F-F00DBDFDDB45/change_password/2914118E-2199-8B10-FF24-1826F5C9E500

But when the user click the link, receives a text with the message: “404. File not found”:

Hello @Dario_Castaneda

Have you removed any files / folders from the Web directory?
Templates for the pages are located along this path:
https://monosnap.com/file/GNLtnDpBMporGxsQPfuQREoNmphQYk

I can suggest that you copy this folder from another application and paste it into the Web directory.

Regards,
Inna

Hi @Inna_Shkolnaya

I’ve copied all files and subfolders as you suggested, but I’m still getting the same error, It’s necessary do something else?

You didn’t copy all the content the directory.
Create the new app and check the content of 'change_password' dir.

Thank you @oleg-vyalyh ,

The page is showing now, but I got the following error when the save button is pressed:

Backendless encountered an error while handling the request. An internal trouble ticket with ID 4CCDE8E4-AA5D-376B-FF4B-66CE6CC14A00 has been created and we will be investigating the issue. class com.backendless.persistence.JsonDTO cannot be cast to class java.util.Map (com.backendless.persistence.JsonDTO is in unnamed module of loader 'app'; java.util.Map is in module java.base of loader 'bootstrap') java.lang.ClassCastException: class com.backendless.persistence.JsonDTO cannot be cast to class java.util.Map (com.backendless.persistence.JsonDTO is in unnamed module of loader 'app'; java.util.Map is in module java.base of loader 'bootstrap') at com.backendless.services.persistence.internal.JsonDataProcessor.toJOOQField(JsonDataProcessor.java:53) at com.backendless.services.persistence.internal.Datastore.lambda$convertObjectMapToJooqProperties$5(Datastore.java:235) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1746) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) at com.backendless.services.persistence.internal.Datastore.convertObjectMapToJooqProperties(Datastore.java:227) at com.backendless.services.persistence.operations.update.UpdateGeneralDbAction.execute(UpdateGeneralDbAction.java:52) at com.backendless.services.persistence.internal.PersistenceService.update(PersistenceService.java:248) at com.backendless.monitoring.PerformanceMonitoring.invoke(PerformanceMonitoring.java:19) at org.jsr107.ri.annotations.guice.CacheRemoveEntryInterceptor.proceed(CacheRemoveEntryInterceptor.java:56) at org.jsr107.ri.annotations.guice.CacheRemoveEntryInterceptor.proceed(CacheRemoveEntryInterceptor.java:31) at org.jsr107.ri.annotations.AbstractCacheRemoveEntryInterceptor.cacheRemoveEntry(AbstractCacheRemoveEntryInterceptor.java:63) at org.jsr107.ri.annotations.guice.CacheRemoveEntryInterceptor.invoke(CacheRemoveEntryInterceptor.java:51) at com.backendless.services.persistence.internal.PersistenceService.update(PersistenceService.java:106) at jdk.internal.reflect.GeneratedMethodAccessor612.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.refl

Hello @Dario_Castaneda

could you please provide a fresh url for the recovering password?

Regards, Vlad

hi @vladimir-upirov

https://api.backendless.com/7E819124-27B5-85D2-FF77-9FB70FF33800/4D956DB2-9DC3-4D1E-B97F-F00DBDFDDB45/change_password/7CA15F00-6F9F-FFCD-FF6B-FFAF17BF2A00

Thanks

The internal ticket BKNDLSS-23203 has been created. We will notify you about any result here.

Regards, Vlad

hi @vladimir-upirov,

Any news?

Hi @Dario_Castaneda,

it’s already fixed and will be released very soon. I hope tomorrow.
We’ll let you know once it’s released.

Regards,
Stanislaw

Hi, @Dario_Castaneda

We’ve just updated our cloud servers with a fix for you. Please verify whether everything works fine now.

Regards,
Marina

Hi @Marina.Kan

It’s working now, thanks